Re: Query question

2014-05-12 Thread
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.comhttps://groups.google.com/d/msgid/elasticsearch/45bd7de6-ffe9-4d9f-bef6-be11e19b051f%40googlegroups.com?utm_medium=emailutm_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.


Query question

2014-05-05 Thread
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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/45bd7de6-ffe9-4d9f-bef6-be11e19b051f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.