'search_type'에 해당되는 글 1건

  1. 2015.12.03 [Elasticsearch - The Definitive Guide] Relevance is Broken!

[Elasticsearch - The Definitive Guide] Relevance is Broken!

Elastic/TheDefinitiveGuide 2015. 12. 3. 17:04

동의 하지 않으시는 분들도 있습니다.

하지만 저는 서비스 특성과 요건에 따라 각자 선택할 몫이라고 생각 합니다.


원문링크)


원문 Snippet)

Don’t use dfs_query_then_fetch in production. It really isn’t required. Just having enough data will ensure that your term frequencies are well distributed. There is no reason to add this extra DFS step to every query that you run.


위 글을 가볍게 정리해 보면 이렇습니다.

분산 환경에서 하나의 index를 여러개의 shard로 쪼갰을 때 idf 값에 따라 relevancy 가 달라 질 수 있다는 이야기 입니다.

즉, local idf 값을 사용할 것인지 global idf 값을 사용할 것인지 search_type 이라는 파라미터를 통해서 결정 할 수 있다는 것입니다.


원문 snippet 은 보시면 아시겠지만 dfs 를 쓰지 말라고 하고 있습니다.

이것 역시 trade off 가 있기 때문에 판단은 사용하시는 분이 판단 하시면 됩니다.

relevance 또는 rank 처리에 있어서 custom 하게 하실 경우 크게 중요하지 않을 수도 있구요.

relevance 와 rank 작업이 중요 할 경우 dfs 를 사용해야 할 필요도 있습니다.


이런 것들도 similarity 기법을 뭘 사용할 것인지에 따라 달라 질 수 있기때문에 반드시라기 보다 경우에 따라 잘 사용하시면 좋겠습니다.


저는 개인적으로 그냥 dfs 빼고 사용해도 크게 무리는 없지 않나 생각 합니다.

Elasticsearch에서도 default search_type 은 query_then_fetch 로 적용 되어 있습니다.


dfs를 사용했을 때와 사용하지 않았을 때 검색 질의에 대한 성능적 차이가 있습니다.

다만, 규모가 작은 경우 별 차이는 없습니다. ㅡ.ㅡ;;

: