A large part of the online shopping experience comes down to search and navigation, which means a user goes to a website and searches for his or her desired product and refines to a specifc subset. The user wants to find the product fast, complete a purchase, and have a satisfactory experience while finding exactly what s/he wants - and fast.
This is what Endeca does. It goes well beyond basic search and helps to guide and navigate the user to the right product. We’ve all gone to a website with hundreds of thousands of products and gotten lost in the assortment related to what we are actually seeking. Endeca aims, with its powerful search and guided navigation, to avoid this information overload and get the user to the limited subset of products - or, if possible, to the single product, that the user wants. For an e-commerce site, this is a successful search: Endeca aims to understand the user’s inputs to pinpoint exactly what the user needs.
The user experience, though, is a two-pronged challenge: the accuracy and relevance of the search contributes heavily to the positive user experience and probably helps to “close to deal” in terms of converting into a purchase. But what if the user has to wait too long to see his results? Usually in as little as a couple of extra seconds, the user will abandon the search and leave the site. Thus, search query performance is crucial.
What slows the Endeca search down - and how can it be sped up?
With a moderate number of records (in the hundreds of thousands of records, for example), Endeca handles searches without a problem. Search slows down on an average server setup when it starts to become process-intensive, as in searches with aggregated product records, where the results can be massive numbers of records processed. On an e-commerce platform that has millions to tens of millions of records, this adds a significant drag to performance. In other words, an Endeca query has to filter records, search, compute, aggregate and roll up the results and return just ONE page out of many in the result list. The results might take multiple seconds to generate. Multiple seconds that are usually more than user wants to wait for the results.
Endeca’s own internal caching mechanisms cache the result set, which cuts down some of this latency, but even with Endeca’s cached results, the outcome is still not fast enough - and, in terms of performance gains, Endeca's own cache cannot be optimized any further due to limited configurability and functionalities.
Varnish Plus for Endeca optimization
One of the things Varnish Plus is best-known for is the value it adds in speed and performance enhancements. Its flexibility means that it can be a natural fit in a number of different scenarios in terms of lending a helping hand on performance to other solutions. In working with a client that used Endeca for search and had tens of millions of records to manage, a solution that could integrate and deliver raw speed was needed. Varnish Plus turned out to be a perfect complement for optimizing the performance of Endeca search results. Because Endeca communicates through HTTP, and Varnish Plus caches data through HTTP, it was an immediate natural fit; Varnish caches whatever comes through HTTP. For Endeca, this means a single page of data. The client was able in a proof-of-concept setting to cut down response times from one second to one millisecond (on the second cached query) - delivering results significantly faster after the first hit. In production, of course, other variables come into play - but Varnish Plus, once deployed, contributed to a significant drop in latency. Flexibility with Varnish Plus allows additional optimization to further cut down the latency time.
Once you enter the territory of managing millions of records with Endeca with record aggregation and computation, you probably want a performance boost. Varnish Plus can come in and really shine in speeding up performance of Endeca queries. Together, Endeca and Varnish Plus are able to deliver search relevance at near-instant speeds, which is critical for user experience and maintaining a competitive edge.
Disclaimer: Oracle and Endeca are trademarks of Oracle Corporation. Varnish Software AB is not affiliated with Oracle Corporation.
Richard Ching is a consultant who has, for the last nine years, focused his expertise on helping clients implement Endeca for eCommerce. Leading up to this, he spent 24 years working broadly in the IT industry, with 15 years specifically in eCommerce. His expertise spans specialty areas including search, analytics, search user experience, and performance.