2016-08-08 2 views
0

가장자리 ngram 분석기를 사용하고 있습니다. 필드에 대한 분석 API를 확인하는 동안 나는 아래 결과를 얻고있다.여백을 포함하는 elasticsearch의 edge ngram을 사용하여 데이터를 색인화하는 방법은 무엇입니까?

"galaxy j7"쿼리의 경우 예를 들어 다음과 같이 분석됩니다.

["g","ga","gal","gala","galax","galaxy","j","j7"] 

다음과 같이 데이터를 분석하고자합니다.

["g","ga","gal","gala","galax","galaxy","galaxy j","galaxy j7"] 

어떻게 가능합니까?

색인 설정은 다음과 같습니다.

{ 
    "analysis": { 
    "filter": { 
     "autocomplete_filter": { 
      "type": "edge_ngram", 
      "min_gram": "1", 
      "max_gram": "20" 
     } 
    }, 
    "analyzer": { 
     "autocomplete_analyzer": { 
      "filter": ["lowercase", "autocomplete_filter"], 
      "type": "custom", 
      "tokenizer": "standard" 
     } 
    } 
    } 
} 

필드 매핑은 다음과 같습니다.

{ 
    "title_suggest": { 
     "type": "string", 
     "index_analyzer": "autocomplete_analyzer", 
     "search_analyzer": "standard", 
     "search_quote_analyzer": "autocomplete_analyzer" 
    } 
} 

답변

1

당신은 대신 edge_ngram 필터로, edgeNGram tokenizer를 사용해야합니다 :

{ 
    "analysis": { 
    "tokenizer": { 
     "autocomplete_tokenizer": { 
      "type": "edgeNGram", 
      "min_gram": "1", 
      "max_gram": "20" 
     } 
    }, 
    "analyzer": { 
     "autocomplete_analyzer": { 
      "filter": ["lowercase"], 
      "type": "custom", 
      "tokenizer": "autocomplete_tokenizer" 
     } 
    } 
    } 
} 
+0

내가이를 사용했다. 그러나 사용하지 마십시오. –

+0

무엇이 작동하지 않습니까? 색인을 삭제하고 새 분석기로 색인을 다시 만든 다음 데이터를 다시 색인해야합니다. 어떻게 진행 했습니까? – Val

+0

나는 그걸로 만했다.하지만 여전히 결과와 같은 것을 얻는다. [ "g", "ga", "gal", "gala", "galax", "galaxy", "j", "j7"] 다른 하나를 원했습니다. 단어로만 나눌뿐입니다. 나는 전체 문장으로 그것을 필요로합니다. –

관련 문제