2.X/2. Search in Depth

2-6-15. Changing Similarities

drscg 2017. 9. 24. 19:02

The similarity algorithm can be set on a per-field basis. It’s just a matter of specifying the chosen algorithm in the field’s mapping:

유사성 알고리즘은 기본적으로 field별로 설정할 수 있다. field mapping에 선택한 알고리즘을 지정하는 문제일 뿐이다.

PUT /my_index
{
  "mappings": {
    "doc": {
      "properties": {
        "title": {
          "type":       "string",
          "similarity": "BM25" 
        },
        "body": {
          "type":       "string",
          "similarity": "default" 
        }
      }
  }
}

title field는 BM25를 사용한다.

body 는 기본 알고리즘을 사용한다. (Lucene’s Practical Scoring Function 참고)

Currently, it is not possible to change the similarity mapping for an existing field. You would need to reindex your data in order to do that.

현재, 기존의 field에 대해 similarity mapping을 변경하는 것은 불가능하다. 이를 위해서는 데이터를 다시 색인 해야 한다.

Configuring BM25edit

Configuring a similarity is much like configuring an analyzer. Custom similarities can be specified when creating an index. For instance:

similarity의 설정은 analyzer의 설정과 매우 유사하다. 사용자 정의 similarity는 index를 생성할 때 지정할 수 있다. 예를 들자면, 아래와 같다.

PUT /my_index
{
  "settings": {
    "similarity": {
      "my_bm25": { 
        "type": "BM25",
        "b":    0 
      }
    }
  },
  "mappings": {
    "doc": {
      "properties": {
        "title": {
          "type":       "string",
          "similarity": "my_bm25" 
        },
        "body": {
          "type":       "string",
          "similarity": "BM25" 
        }
      }
    }
  }
}

내장된 BM25 similarity를 기반으로, my_bm25 라 불리는 사용자 정의 similarity를 생성한다.

field length normalization을 비활성화. Tuning BM25 참조

title field는 사용자 정의 similarity my_bm25 를 사용한다.

body field는 내장된 similarity BM25 를 사용한다.

Tip

A custom similarity can be updated by closing the index, updating the index settings, and reopening the index. This allows you to experiment with different configurations without having to reindex your documents.

index를 닫고, index 설정을 업데이트하고, index를 다시 open하여, 사용자 정의 similarity를 업데이트할 수 있다. 이를 이용해 document를 다시 색인 하지 않고, 다른 설정을 실험할 수 있다.


'2.X > 2. Search in Depth' 카테고리의 다른 글

2-6-10. Random Scoring  (0) 2017.09.24
2-6-11. The Closer, The Better  (0) 2017.09.24
2-6-12. Understanding the price Clause  (0) 2017.09.24
2-6-13. Scoring with Scripts  (0) 2017.09.24
2-6-14. Pluggable Similarity Algorithms  (0) 2017.09.24