2015-01-19 2 views
0

정확한 검색을 위해 Elasticsearch에서 pharse를 검색하고 싶습니다. 그러나 Elasticsearch도 다른 pharses를 포함하고 있습니다.탄성 검색 완전 일치 약식

예; 나는 "작은 고양이"를 찾고 싶지만, Elasticsearch는 "작은 고양이 점프", "작은 고양이", "작은 고양이"등을 돌려 준다.

나는 단지 단지 정확한 "작은 고양이"를 원한다. 고양이 "가 아니라 다른. 이 쿼리를 어떻게 수행 할 수 있습니까?

내 콘텐츠는;

{ 
    title: "little cat", 
    content: "bla bla bla" 
}, 
... 

답변

1

title의 색인 생성 방식에 따라 다릅니다. 이러한 요구 사항에 대해 titleanalyzed as keyword 일 필요가 있습니다. 정확히 어떤 텍스트가 title에 속하며 ES의 내부 Lucene 역 색인에 넣는 것과 같습니다.

그리고 term 필터는 keyword으로 분석 된 titlelittle cat을 검색 할 때 선택됩니다.

title 필드를 인덱싱 할 때 다른 작업을 수행하려는 경우 add a filter, 예를 들어 대문자를 소문자로 사용할 수 있습니다. 하지만 어쨌든 keyword 분석기가 필요합니다.

당신이 title 지금 색인 방법을 변경하지 않으려면 make it as multi_field 수와 keyword 분석기를 사용하여 색인해야 title_keyword (예를 들어) 필드를 추가합니다.

0

문자열 필드를 인덱싱 할 때 문자열의 기본 매핑 인덱스 유형은 analyzed (전체 텍스트 인덱스는 MySQL)입니다. 매핑을 다시 만들고 인덱스 유형을 not_analyzed으로 설정해야합니다. 더에 대한 Core Typesmapping

에 대한

봐이