2016-12-30 2 views
1

Elasticsearch 5.1.1을 사용하고 있습니다. 중첩 된 쿼리를하고있는 동안, 400 오류를 반환다중 레벨 중첩 쿼리 - RequestError 예외 400 - 쿼리를 생성하지 못했습니다.

내 문서 이것은 내가 예외를 가지고 위의 쿼리에 대한 내 쿼리 코드

{ 
"query": { 
    "nested": { 
     "path":"_source", 
     "query": { 
      "nested": { 
       "path": "_source.doc", 
       "query": { 
        "match": { 
         "_source.doc.keyword_elas": "elasticsearch" 
        } 
       } 
      } 
     } 
    } 
}} 

인이

{ 
"_index" : "test", 
"_type" : "test_five", 
"_source" : { 
    "doc" : { 
    "keyword_elas" : "elasticsearch", 
    } 
    }, 
    "doc_as_upsert" : true } 

모양을

elasticsearch.exceptions.RequestError: TransportError(400, u'search_phase_execution_exception', u'failed to create query: {\n "nested" : {\n "query" : {\n "nested" : {\n

일부 쿼리 실수로 인해 예외입니까? 또는 버전 문제는 ...

당신에게 당신이이 환경에서 중첩 된 쿼리를 사용하는 이유는 아주 확실하지 않다

+0

내 오류 메시지의 맨 아래에 내 매핑을 설정할 때 중첩 된 유형을 제대로 만들지 못했다는 구체적인 'reason' 속성이 있습니다. "causes_by": { "type": "illegal_state_exception", "이유": "경로 [중괄호]에있는 중첩 된 객체가 중첩 된 유형이 아닙니다." } –

답변

1

감사드립니다.

이 같은 문서가있는 경우 :

{ 
"_index" : "test", 
"_type" : "test_five", 
"_source" : { 
    "doc" : { 
    "keyword_elas" : "elasticsearch", 
    } 
    }, 
    "doc_as_upsert" : true } 

을 그리고 내 목표는 keyword_elas 필드와 일치하는 것입니다. 내가 할 수있는 모든은 다음과 같습니다

GET test/test_five/_search 
{ 
    "query": { 
     "match" : { 
      "keyword_elas" : "elasticsearch" 
     } 
    } 
} 

정확히 일치 :

분석 분야 :

GET test/test_five/_search 
    { 
     "query": { 
      "match" : { 
       "keyword_elas" : "elasticsearch", 
       "fuzziness": "0" 

      } 
     } 
    } 

참고 : elasticsearch ABC을 포함 keyword_elas에서 문서가있는 경우,이 쿼리 때문에 작동합니다 첫 번째 토큰 ()에는 0이 표시됩니다. not analyzed fields를 들어

(완전 일치)

GET test/test_five/_search 
{ 
    "query": { 
    "term" : { "keyword_elas" : "elasticsearch" } 
    } 
} 

당신이

keyword_elas : elasticsearch 

keyword_elas : elasticsearch abc 

와 인덱스의 두 문서가있는 경우 용어 쿼리가 첫 번째 일치합니다 문서.

+0

안녕하세요, Yeikel, 동의합니다. 정확히 일치하는 검색어를 원할 경우 - 귀하의 답변은 무엇입니까? –

+0

필드가 분석되었거나 분석되지 않았습니까? – Yeikel

+0

@RahulBabuR 나를 위해 – Yeikel