Elastic 자동완성


Prefix Query

문서의 구조를 바꾸면서 일단 title의 type 설정 중 test는 ES에서 제공하는 형태소 분석을 바탕으로 음절로 끊어서 색인이 진행된다. keyword의 경우는 단어 자체를 색인을 하게된다.

text로 매핑된 필드

text로 매핑된 필드

keyword로 매핑된 필드

keyword로 매핑된 필드

일단 가장 단순한 방법은 위의 방법을 OR로 묶어서 검색 결과에 해당하는 title 값을 list로 알려주는 것이다.

Fuzzy Query

Fuzzy query는 오타가 발생하였을 경우에 이를 더하고, 빼는 과정을 통해서 유사한 값을 가져오도록 기능을 제공하며, 오타에 대한 자동완성에 대해서 대처할 수 있다.

Fuzzy를 이용한 교정 방식은 text로 매핑된 데이터에 효과적으로 작용하며, keyword의 경우는 fuzziness를 1로 두어서는 드라마틱한 결과를 도출하는 것이 제한적이다.

Match Phrase Prefix

text 타입의 매핑된 데이터를 검색할 때, 앞색인어와 뒷색인어 둘 모두 만족해야 검색되는 방식이다. 이는 검색하는 단어의 순서를 고려하여 서칭이 되기 때문에 일반적으로 범용적으로 쓰기 적합한 자동완성 방식이다. → 검색을 할때 뒤에서 부터 앞으로 키워드를 타이핑하지는 않는다.

Combine Query

Prefix와 Fuzzy를 동시에 사용하는 방식으로 prefix에서 제시한 아이디어에 대해서 fuzzy를 추가한 것을 말한다.