나는 ElasticSearch에서 어려움을 겪고있다. 사실 두 개의 쿼리가 있지만 첫 번째는 작동하지만 두 번째 쿼리는 그렇지 않습니다. 모든 항목을 잡아, 그래서 기본적으로ElasticSearch 중첩 된 [AND OR] 필터
{
"query": {
"filtered": {
"query": {
"match_all":{}
},
"filter": {
"and": [{
"term":{
"relatedID":"214"
}
},
{
"term":{
"relatedType":"deal"
}
}]
}
}
}
}
을 : 여기
괜찮 기초 1 쿼리입니다 (쿼리가 실제로는 이것보다 상당히 더 큰, 내가 이해를 돕기 위해 아래로 제거했습니다) 어디 relatedID의 == 214 & & relatedType는 == "거래"그러나, 나 또한 할 싶은 것, 이것이다 :
{
"query": {
"filtered": {
"query": {
"match_all":{}
},
"filter": {
"and": [{
{
"or":[{
"and":[{
"relatedID":"528"
},
{
"relatedType":"company"
}]
},{
"and":[{
"relatedID":"214"
},
{
"relatedType":"deal"
}
]}
]}
]}
}
}
}
}
}
}
S 기본적으로 모든 거래를 214, 또는 회사와 528을 잡아라.
이것은 내가 붙어있는 것처럼 보인다.
{
"query":{
"filtered":{
"query":{
"match_all":{}
},
"filter":{
"and":[
{
"or":[
{
"term":{
"timeSensitive":false
}
}
,
{
"range":{
"validTo":{
"gt":"20140513T153030Z"
},
"validFrom":{
"lt":"20140513T153030Z"
}
}
}
]
}
,
{
"term":{
"categoryTree.NAME":"Promotions"
}
}
,
{
"or":[
{
"and":[
{
"relatedID":"528"
}
,
{
"relatedType":"company"
}
]
}
,
{
"and":[
{
"relatedID":"214"
}
,
{
"relatedType":"deal"
}
]
}
]
}
,
{
"terms":{
"permissions": ["member","supplier"]
}
}
,
{
"term":{
"siteID":6
}
}
]
}
}
}
}
}
}
는 bool' 필터는'ES 설명서에서 권장하는 대신한다 '알고 있나요 및'및'필터? –