Thank you very much!

--
Eateral

在 2014年5月8日星期四UTC+8上午12时10分42秒,Ivan Brusic写道:
>
> Your two clauses, mode and schedule, are joined via an AND, so those two 
> clauses should be part of the *must *section. The schedule clauses is 
> then an OR between two clauses, so it should be a nested bool filter using 
> *should*. Hopefully that made sense. :)
>
> Since you are using term queries on what are hopefully non-analyzed fields 
> (numeric fields are always non-analyzed), I will use a match all query with 
> filters since it should be more efficient. The query should looking 
> something like:
>
> {
>    "query": {
>       "filtered": {
>          "query": {
>             "match_all": {}
>          },
>          "filter": {
>             "bool": {
>                "must": [
>                   {
>                      "term": { "mode": "1" }
>                   },
>                   {
>                      "bool": {
>                         "should": [
>                            {
>                               "term": { "schedule": "1" }
>                            },
>                            {
>                               "term": { "schedule": "3" }
>                            }
>                         ]
>                      }
>                   }
>                ]
>             }
>          }
>       }
>    }
> } 
>
> -- 
> Ivan
>
>
> On Mon, May 5, 2014 at 3:36 AM, 曾岩 <eate...@gmail.com <javascript:>>wrote:
>
>> Hi,
>>
>> I'm new to Elasticsearch and try to integrate it into our project but met 
>> a problem. In our data source, it has two fields: mode and schedule which 
>> are all integer. Through UI, it should can query records based on these two 
>> fields like: 
>> *SELECT * FROM doc WHERE mode = 1 AND (schedule = 1 OR schedule = 3)*
>>
>> I tried below query JSONs but none return the expected results, anyone 
>> can help? Thank you!
>>
>> *{*
>> *  "query": {*
>> *    "bool": {*
>> *      "must": [*
>> *        { "match": { "mode": 1 } }*
>> *      ],*
>> *      "should": [*
>> * { "match": { "schedule": 1 } },*
>> *        { "match": { "schedule": 3 } }*
>> *      ]*
>> *    }*
>> *  }*
>> *}*
>> -------------------------------------------------------------------
>> *{  "query": {     "filtered": {      "query": { "match_all": {} },      
>> "filter": {            "and" : [                {                    "term" 
>> : { "mode" : "1" }                 }            ]        },      "filter": 
>> {            "and" : [                {                    "term" : { 
>> "schedule" : "1" }                 }, {                    "term" : { 
>> "schedule" : "3" }                }            ]       }    }  }}*
>>
>> -- 
>> 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/45bd7de6-ffe9-4d9f-bef6-be11e19b051f%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/45bd7de6-ffe9-4d9f-bef6-be11e19b051f%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/0e8e2332-d5b7-416b-a16e-f965884cc42f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to