2016-07-06 3 views
0

queryDSL을 사용하여 elasticsearch에서 MINUS (DATASET1-DATASET2)와 같은 MINUS 쿼리를 만들려고하지만 길을 찾을 수 없습니다.elasticsearch에서 MINUS 연산을 수행하는 방법

누구나 나를 보여줄 수 있습니까? Tx 사전에

+0

아마도이 작업을 [bool query] (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html)로 수행 할 수 있습니다. – yuan

+0

안녕하세요 @M_M if 대답은 그것을 받아들이는 것을 고려하시기 바랍니다 귀하의 질문을 해결했습니다. 이것은 해결책을 찾았다는 것을 더 넓은 커뮤니티에 나타냅니다. 그러나 이것을 할 의무는 없습니다. – baudsp

답변

1

bool 쿼리는 반드시 사용해야하며 사용할 수 없습니다.
Documentation on the bool query

당신은해야하고 must_not에서 DATASET2에 대한 쿼리을 DataSet1에 대한 쿼리를 둘 것 :

{ 
"bool" : { 
    "must" : { 
     DATASET1 
    } 
    "must_not" : { 
     DATASET2 
    } 
} 

} 예를 들어

:

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": { 
      "range": { 
       "@timestamp": { 
       "lte": 1467811620000, 
       "gte": 1467811520000 
       } 
      } 
      }, 
      "must_not": { 
      "term": { 
       "_type": "bus-api" 
      } 
      } 
     } 
     } 
    } 
    } 
} 

것은이 반환 그 두 번 사이의 모든 문서는 bus-api 유형의 문서를 제외합니다.

관련 문제