Elastic Search를 사용하여 검색을 수행할 때, 검색 결과가 예상보다 많은 결과를 반환하거나, 반대로 원하는 결과가 충분히 반영되지 않는 문제가 발생했습니다. 특히, fuzziness
, minimum_should_match
와 같은 파라미터들이 제대로 튜닝되지 않았을 때 이러한 문제가 두드러졌습니다.
minimum_should_match
값을 조정했습니다. 이를 통해 조금 더 넓은 범위의 검색 결과를 얻을 수 있었습니다.fuzziness
값을 2로 설정하여, 사용자가 오타를 입력하거나 철자가 약간 다른 경우에도 유연하게 검색 결과를 제공할 수 있도록 했습니다. 그러나 fuzziness
를 너무 높게 설정하면 너무 많은 결과가 반환되는 문제가 발생할 수 있어, 적절한 값을 찾기 위해 반복적인 테스트를 진행했습니다.title
, teacher
, description
필드에 가중치를 부여했습니다. 초기에는 title
필드에 높은 가중치(^3)를 주고, description
필드에는 상대적으로 낮은 가중치(^1)를 설정했습니다. 그러나 실제 검색 결과를 분석한 결과, description
필드가 검색에서 더 중요한 역할을 해야 한다는 것을 발견했고, 가중치를 ^2로 조정하여 더 정확한 검색 결과를 도출할 수 있었습니다.사용자가 검색어를 입력할 때 오타가 발생하거나 유사한 단어를 사용할 경우, 검색 결과가 제대로 나오지 않는 문제가 있었습니다. 예를 들어, "은퇴"를 "은타"로 잘못 입력했을 때 검색 결과가 전혀 반환되지 않는 상황이 발생했습니다.
fuzziness
를 2로 설정했습니다. 이 설정을 통해 사용자 입력의 작은 오류에도 불구하고 원하는 결과를 얻을 수 있었습니다.fuzziness
를 높게 설정하면 너무 많은 오타를 허용하게 되어 검색 결과의 정확도가 떨어질 수 있습니다. 이를 보완하기 위해 prefix_length
를 1로 설정하여, 검색어의 처음 몇 글자가 정확히 일치해야만 결과가 반환되도록 제한을 두었습니다. 이를 통해 검색 정확도를 유지하면서도 유연한 검색 결과를 제공할 수 있었습니다.