"should" has a "minimum_should_match" of 1 when there is no "must" or
"must_not". With only a single "should", that makes it act like "must".

On Thu, Mar 12, 2015 at 9:08 AM, parq <[email protected]> wrote:

> However, the following query returns the expected document,
>
> curl -XGET "http://localhost:9200/test-cbx/bug/_search"; -d'
> {
>    "query": {
>       "filtered": {
>          "query": {
>             "bool": {
>                 "must": [
>                    {
>                        "match": {
>                           "type": {
>                               "query": "some type"
>
>                           }
>                        }
>                    }
>                 ],
>                 "should": [
>                    {
>                        "match": {
>                           "country": {
>                               "query": "de"
>
>                           }
>                        }
>                    }
>                 ]
>             }
>          },
>          "filter": {
>                   "term": {
>                      "type": "some type"
>                   }
>          }
>       }
>    }
> }'
>
> May be it is like "should clause" does not work without a "Must clause" in
> query?
>
>
> On Thursday, March 12, 2015 at 2:54:00 PM UTC+1, parq wrote:
>>
>> Hello all,
>>
>> We have a single document in an index:
>>
>> $  curl -XGET "http://localhost:9200/test-cbx/bug/_search?q=*";  gives us
>> the following response
>> {"took":2,"timed_out":false,"_shards":{"total":5,"
>> successful":5,"failed":0},"hits":{"total":1,"max_score":
>> 1.0,"hits":[{"_index":"test-cbx","_type":"bug","_id":"1","
>> _score":1.0,"_source":
>> {
>>     "country": "lu",
>>     "type": “some type"
>> }}]}}
>>
>> And the following two queries give no results, even though it’s a should
>> clause:
>>
>> $ curl -XGET "http://localhost:9200/test-cbx/bug/_search"; -d'
>> {
>>    "query": {
>>       "filtered": {
>>          "query": {
>>             "match_all": {}
>>          },
>>          "filter": {
>>             "bool": {
>>                "should": {
>>                   "term": {
>>                      "country": "de"
>>                   }
>>                }
>>             }
>>          }
>>       }
>>    }
>> }'
>>
>> $ curl -XGET "http://localhost:9200/test-cbx/bug/_search"; -d'
>> {
>>    "query": {
>>       "filtered": {
>>          "query": {
>>             "bool": {
>>                 "should": [
>>                    {
>>                        "match": {
>>                           "country": {
>>                               "query": "de"
>>
>>                           }
>>                        }
>>                    }
>>                 ]
>>             }
>>          },
>>          "filter": {
>>                   "term": {
>>                      "type": “some type"
>>                   }
>>          }
>>       }
>>    }
>> }'
>>
>> What is the preferred way to approach the bool query? Filter or the query?
>>
>>
>> Regards,
>>
>  --
> 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/58b7f178-4c09-4de7-9d38-c7aa3bc39a05%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/58b7f178-4c09-4de7-9d38-c7aa3bc39a05%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/CAOppbCUJZ-pqrJMGpvk1Vv-Wqyanmz8XDW6MmBdCj6mvuuXUcg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to