Thank you for the quick response. I get what you are saying but my question 
was basically from a standpoint where all the filters I am using are 
equally "heavy" and some match significantly less documents than the 
others. It would be really awesome if you can answer the 4 questions I 
asked, if they make sense of course.

On Sunday, September 21, 2014 3:38:02 PM UTC+5:30, David Pilato wrote:
>
> Basically, you should put at the end filters which have the heavier cost.
> For example a geo filter should be computed at the very end.
>
> Also, non cached filters should be placed at the end. For example, if you 
> have a date range filter using « now » which is not cached.
>
> It’s not really related to the number of documents which are matching or 
> not the filter.
>
> Though elasticsearch tries to optimize that behind the scene.
>
> Note also that cache plays a really important role even if Lucene is 
> really fast.
>
> Hope this helps.
>
> -- 
> *David Pilato* | Technical Advocate | *elasticsearch.com 
> <http://elasticsearch.com>*
> [email protected] <javascript:>
> @dadoonet <https://twitter.com/dadoonet> | @elasticsearchfr 
> <https://twitter.com/elasticsearchfr> | @scrutmydocs 
> <http://twitter.com/scrutmydocs>
> <https://twitter.com/scrutmydocs>
>
>
>
> Le 21 septembre 2014 à 07:39:41, Mouzer ([email protected] <javascript:>) 
> a écrit:
>
> For my requirements, I need to have a filter like below: 
>  {
>     "filter": {
>         "bool": {
>           "must": [
>             {
>               "bool": {
>                 "should": [
>                   {
>                     "term": {
>                       "field1": "value1x"
>                     }
>                   }
>                 ]
>               }
>             },
>             {
>               "bool": {
>                 "should": [
>                   {
>                     "term": {
>                       "field2": "value2x"
>                     }
>                   }
>                 ]
>               }
>             }
>           ]
>         }
>       }
>  
>  This is a simplified example. There can be multiple values for the 
> fields field1 and/or field2 and hence the inner should filter. I know for a 
> fact that the should filter for field2 will usually match much less 
> documents than the should filter for field1. After reading this 
> <http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_filter_order.html>,
>  
> it is clear that had I used field1 and field2 directly under the same must 
> filter, I should have specified field2 before field1. 
>
> Ask:
> 1. Does the filter ordering theory hold in general for nested filters like 
> in my case? Will I gain in performance if I put the should filter for 
> field2 before the should filter for field1? Let's assume that these filters 
> are not cached.
> 2. Does the reverse of the filter ordering theory hold for should filters 
> - that filters matching most documents should appear before filters 
> matching less documents in a should filter?
> 3. Does this same theory hold for and/or filters just like it holds for 
> must/should filters?
> 4. Just for my information, for this theory to work, the filters must be 
> "evaluated" in a sequence and not in parallel. Correct?
>  --
> 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 [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/84829783-d67c-464a-9f19-f6aa5309136f%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/elasticsearch/84829783-d67c-464a-9f19-f6aa5309136f%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/df853d5d-29cc-4392-b909-038ce33b5a15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to