2013-09-26 2 views
1

나는 Couchbase - ElasticSearch 튜토리얼 통합을 따라 맥주 샘플 버킷으로 테스트하고있다.Couchbase - Elasticsearch 검색 문제

문제가 있습니다.

내가 좋아하는 쿼리를 수행 할 수 있습니다

{ 
    "query": { 
     "match": { 
      "doc.name": "IPA" 
     } 
    } 
} 

하지만 난 그런 식으로 검색하는 경우 :

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "match_all": { } 
      }, 
      "filter": { 
       "term": { "doc.name": "IPA" } 
      } 
     } 
    } 
} 

나는 어떤 결과를 얻을 수 없습니다. "맥주"

{ 
    "query": { 
     "match": { 
      "doc.type": "beer" 
     } 
    } 
} 

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "match_all": { } 
      }, 
      "filter": { 
       "term": { "doc.name": "beer" } 
      } 
     } 
    } 
} 

난 이유를 모르겠어 : 다른 문자열 필드와

나는 예를 들어, "유형", 문제가 발생하지 않습니다.

미리 감사드립니다.

답변

1

이것은 귀하의 분석기 때문입니다. 문자열의 경우 기본 분석기가 입력 값을 낮 춥니 다. 따라서 IPA는 ipa로 색인됩니다.

용어 필터는 입력을 분석하지 않으므로 IPA를 검색하고 색인에서 ipa -> IPA! = ipa를 가지므로 해당 문서가 일치하지 않습니다.

일치 검색어는 필드에 설정된 분석기를 사용하여 입력을 분석하므로 입력이 소문자이고 ipa를 검색합니다.

나는 그것이 의미가 있기를 바랍니다.

+0

감사합니다. DeH! 맞습니다! –

+0

당신을 환영합니다! – DeH