I think you are right :) I tried to implement it, and performance seems to be good. Thank you (and Michael) very much for the help.
Den fredag den 16. januar 2015 kl. 22.18.17 UTC+1 skrev Jörg Prante: > > I do not think you have to worry, I use a dozen of aggregations with > filters with success on 50m docs with 8G RAM and 3 nodes. But if your tests > show a massive slowdown, you should come back with your findings including > performance numbers, so the ES core team can have a look at it. > > Jörg > > On Fri, Jan 16, 2015 at 7:35 PM, Bo Finnerup Madsen <bo.gun...@gmail.com > <javascript:>> wrote: > >> Hi Mike, >> >> Thanks, that is in line with what Jörg suggested. I have updated the gist >> with a search using this approach and it gives the correct result. However >> I am a bit concerned about the cost of this, as we will be running 4-5 >> facets each of which will require their own set of filters. >> But if it is the recommended way, I will try to implemented it and run a >> performance test :) >> >> Den fredag den 16. januar 2015 kl. 18.13.34 UTC+1 skrev Michael >> McCandless: >>> >>> I think you must do separate filters to compute the sideways facet >>> counts. >>> >>> Mike McCandless >>> >>> http://blog.mikemccandless.com >>> >>> On Fri, Jan 16, 2015 at 10:15 AM, Bo Finnerup Madsen < >>> bo.gun...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I am trying to migrate a project from Lucene to elasticsearch, and for >>>> the most part it is a pleasure :) >>>> However, I cannot wrap my head around how to recreate the drill >>>> sideways queries we currently use in Lucene. >>>> >>>> The scenario is a basic search page with a free text search and a bunch >>>> of drill down/sideways facets. In Lucene, the hits that we get for each >>>> facet, is a correct representation of how many results we would get if >>>> that >>>> facet is used as a limit, but I am unable to do this in elasticsearch... >>>> >>>> As an example (full gist available here: https://gist.github.com/ >>>> bogundersen/e9bac02779e1c4a089dc) >>>> >>>> I have three items: >>>> Item 1: >>>> language : en_GB, >>>> year: 2013, >>>> author: [ John, Paul ] >>>> Item 2: >>>> language : en_GB, >>>> year: 2012, >>>> author: [ John, George ] >>>> Item 3: >>>> language : da_DK, >>>> year: 2012, >>>> author: [ Ringo ] >>>> >>>> Now lets imagine that the user limits to year 2012. If I just include >>>> the facet in the query ("Search 2" in the gist), I would get the following >>>> facets: >>>> year >>>> 2012 : 2 >>>> author >>>> George 1 >>>> John 1 >>>> Ringo 1 >>>> language >>>> da_DK 1 >>>> en_GB 1 >>>> The author and language facets show the correct numbers, but the year >>>> facet only shows year 2012 thereby not allowing the user to select another >>>> year without deselecting 2012. >>>> >>>> A way around this is to use post filters ("Search 3" in the gist), >>>> using those I get the following facet results: >>>> year >>>> 2012 : 2 >>>> 2013 : 1 >>>> author >>>> John 2 >>>> George 1 >>>> Paul 1 >>>> Ringo 1 >>>> language >>>> en_GB 2 >>>> da_DK 1 >>>> Here the user is still presented with other years, but the numbers for >>>> author and language are not correct (e.g. selecting "John" will only give >>>> 1 >>>> result, and not two) >>>> >>>> The only way I can think of to make this work, is to do separate >>>> queries for each facet, but that seems counter intuitive and not very >>>> performance friendly. Any ideas on how to do this in elasticsearch? >>>> >>>> -- >>>> Bo Madsen >>>> >>>> -- >>>> 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 elasticsearc...@googlegroups.com. >>>> To view this discussion on the web visit https://groups.google.com/d/ >>>> msgid/elasticsearch/2e97801f-a091-4f1d-8e31-1ffb777f287c% >>>> 40googlegroups.com >>>> <https://groups.google.com/d/msgid/elasticsearch/2e97801f-a091-4f1d-8e31-1ffb777f287c%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> 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 elasticsearc...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elasticsearch/ce635bd0-7295-4369-96d9-9d60d7578e8a%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elasticsearch/ce635bd0-7295-4369-96d9-9d60d7578e8a%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/020d2bfc-0cf5-4439-992f-e507ab6b5582%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.