Hello, I'm evaluating elasticsearch for use in new project. I can see that it has all search features we need. Problem is that after reading documentation and forum I still can't understand whether elastic is suitable technology for us performance-wise. I'd be very grateful to get your opinion on that.
We're building a directory of businesses, similar to Yelp. We have 5m businesses, and main feature of our site is faceted search on different facets: geography (tens of thousands geo objects), business type (several thousand options), additional services offered by that business (hundreds) and so on. So for each request (combination of search parameters) we need to get search results, but also what options are available in each facet (for example, what business types are located are in selected geography) for user to be able to narrow down his search (example: http://take.ms/oAZan). Full text search (by business name for example) is used in very small percentage of requests, bulk of requests is exact match on one or several facets. Based on the similar our project we expect 1-5m requests per day. All requests are highly diversified: no single page (combination of search params) constitutes more than 0,1% of total requests. We expect to be able to answer request in 200-300ms, so I guess request to elasticsearch should take no more than 100ms. On our similar project we use big lookup table in database with all possible combinations of params mapped to search result count. For each request we generate all possible combinations of parameters to refine current search and then check lookup table to see if they have any results. My questions are: Is elastic search suitable for our purposes? Specifically, are aggregations meant to be used in large number of low-latency requests, or are they more like analytical feature, where response time is not that important? I ask that because in discussions of aggregation and faceting performance here and elsewhere response times are mentioned in 1-10s range, which is ok for analytics and infrequent searches, but obviously on ok for us. How hard it is to get performance we need: 50 rps, 100ms response time for search+facets, on some reasonable hardware, taking into account big number of possible facet combinations and high diversification of requests? What kind of hardware should we expect to handle our loads? I understand that these are vague questions, but I just need some approximation. Is it more like 1 server with commodity hardware and simple configuration, or more like cloud of 10 servers and extensive tuning? For example, our lookup table solution works on 1 commodity server with 16gb of ram with almost default setup. Thank you for your responses, Dmitry -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/807801d4-2926-4e52-9161-dc82d3f33a75%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.