2013-02-07 2 views
0

어떻게 가운데 또는 마지막 영문자를 통해 단어를 검색 할 수 있습니까? 예를 들어 CORPORATION은 하나의 단어이며 EdgeGram 및 접두사 필터를 사용하여 COR, CO, C 등의 이니셜로 CORPORATION을 검색 할 수 있습니다. POR 또는 RATI 또는 ION 인 CORPORATION의 마지막 글자 또는 중간 글자로 검색 할 수는 없습니다. 이 기능은 탄력적 인 검색을 지원합니까? 그렇다면 어떻게이 문제를 해결할 수 있습니다.탄성 검색 접두사, 접미사, EdgeGram

+0

원하는 것을 이해하기 어렵습니다. 당신은 명확히 할 수 있습니까? 이전 시도의 코드 샘플은 이해를 돕습니다. –

답변

2

nGram tokenizer은 원하는대로 할 수 있습니다. Edge-nGram 토큰 화 프로그램과 비슷하지만, 하나의 가장자리에 고정되기보다는 전체 단어로 이동한다는 점이 다릅니다.

$ curl localhost:9200/test/_analyze?tokenizer=ngram&pretty' -d 'corporation' | grep token 

"tokens" : [ { 
"token" : "c", 
"token" : "o", 
"token" : "r", 
"token" : "p", 
"token" : "o", 
"token" : "r", 
"token" : "a", 
"token" : "t", 
"token" : "i", 
"token" : "o", 
"token" : "n", 
"token" : "co", 
"token" : "or", 
"token" : "rp", 
"token" : "po", 
"token" : "or", 
"token" : "ra", 
"token" : "at", 
"token" : "ti", 
"token" : "io", 
"token" : "on",