2017-10-11 1 views
0

단어가 동일한 필드에 대해 퍼지 일치를 찾는 방법을 찾고 있습니다.ElasticSearch - 퍼지 키워드 일치

즉. 내가 그렇게 같은 값으로 필드가있는 경우 : -

foobar 
foobar number2 
barfoo 
barfoo number2 

내가 fooba으로 검색 난 단지 문서를 반환하고 싶습니다 내가 number2로 검색하면 foobar하지 foobar number2

나는 반환하지 싶습니다 아무것도 모두 number2 값은 2 단어가 있습니다.

용어 쿼리가 퍼지 수 없다는 것을 알고 있습니다. 어떤 검색어로도 가능합니까? 내가 질문을 게시의 20 분 후에 그것을 일 2 일간이와 싸움 후

나는 elasticsearch 5.4

감사

답변

0

을 사용하고 있습니다.

당신은 keyword 토크 나이를 사용하여 필드에 대한 사용자 분석기를 작성해야합니다 : -

"analyzer": { 
    "all_words_analyzer": { 
     "filter": [ 
      "lowercase" 
     ], 
     "type": "custom", 
     "tokenizer": "keyword" 
    } 
} 

그런 다음 필드에 그 설정 : -

"term": { 
    "type": "text", 
    "analyzer": "all_words_analyzer" 
} 

이제 정상적인 퍼지 일치로 작동합니다 위.

"query": { 
    "fuzzy": { 
     term": { 
      "value": "fooba" 
     } 
    } 
} 
관련 문제