문서의 구조를 바꾸면서 일단 title
의 type 설정 중 test
는 ES에서 제공하는 형태소 분석을 바탕으로 음절로 끊어서 색인이 진행된다. keyword
의 경우는 단어 자체를 색인을 하게된다.
text로 매핑된 필드
keyword로 매핑된 필드
일단 가장 단순한 방법은 위의 방법을 OR
로 묶어서 검색 결과에 해당하는 title 값을 list로 알려주는 것이다.
Fuzzy query는 오타가 발생하였을 경우에 이를 더하고, 빼는 과정을 통해서 유사한 값을 가져오도록 기능을 제공하며, 오타에 대한 자동완성에 대해서 대처할 수 있다.
docker를 검색하기 위해서 dokcer를 검색했다고 가정해보자 다음과 같은 쿼리를 이용해서 docker에 대한 검색 결과를 제대로 반환할 수 있다.
fuzziness
를 통해서 몇 글자에 대한 교정을 적용할 것인지 정할 수 있다.
Fuzzy를 이용한 교정 방식은 text로 매핑된 데이터에 효과적으로 작용하며, keyword의 경우는 fuzziness를 1로 두어서는 드라마틱한 결과를 도출하는 것이 제한적이다.
text 타입의 매핑된 데이터를 검색할 때, 앞색인어와 뒷색인어 둘 모두 만족해야 검색되는 방식이다. 이는 검색하는 단어의 순서를 고려하여 서칭이 되기 때문에 일반적으로 범용적으로 쓰기 적합한 자동완성 방식이다. → 검색을 할때 뒤에서 부터 앞으로 키워드를 타이핑하지는 않는다.
다음과 같은 예시를 통해서 docker compose와 관련된 데이터를 찾을 수있다.
위의 방식의 경우는 상대적으로 긴 link와 memo에서 적용하기 적합한 것으로 보인다.
Prefix와 Fuzzy를 동시에 사용하는 방식으로 prefix에서 제시한 아이디어에 대해서 fuzzy를 추가한 것을 말한다.