2016-09-07 3 views
0

중첩 필드가있는 요소를 반환하는 Elasticsearch 쿼리를 작성하려고합니다. 그러나 나는 분명히 그것으로 많은 어려움을 겪고있다. 다음과 같이이 분야에 대한 나의 매핑은 일반적으로 보인다 : 나는 일치하는 문서가 알면서도 이 { "query": { "filtered": { "filter": { "exists": { "field": "hello.foo" } } } } }중첩 필드 존재 여부에 대한 Elasticsearch 쿼리 필터링

이 쿼리는 0 일치하는 문서를 반환합니다 다음과 같이

{ "myType": { "properties": { "hello": { "type": "nested", "properties": { "foo": {"type": "string", "index": "not_analyzed"}, "bar": {"type": "string", "index": "not_analyzed"}, } } } } }

내 쿼리가 일반적이다.

나는 또한 nested 쿼리 내부의 exists 쿼리를 사용하려고했으나 오류 메시지에 대한 nested 쿼리는 exists 쿼리를 지원하지 않는 주어졌다.

나는 이것을 Elasticsearch와 비교 테스트 중입니다. 2.3 어떤 도움을 주시면 감사하겠습니다!

답변

1

내가 내가 옛날 블로그 게시물 (http://joelabrahamsson.com/elasticsearch-nested-mapping-에서 내 대답을 발견했던 것을 게시 할 수 막했다,이 하하

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "nested": { 
      "path": "hello", 
      "filter": { 
       "term": {  // replace term to "match" in case of fulltext 
       "hello.foo": "value to be searched" 
       } 
      } 
      } 
     } 
     ] 
    } 
    }, 
    "from": 0, 
    "size": 50 
} 
+0

을 도움이되기를 바랍니다 and-filter /). 그러나 이것은 정확히 말한 것입니다 (중첩 된 필터 내에서 다른 필터를 사용하여 존재 필터 사용). 'term' 필터를'exists' 필터로 편집하고 정확한 답을 표시 할 것입니다! 도와 주셔서 감사합니다! – user114241

관련 문제