企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# similarity (匹配方法) **Elasticsearch  **允许你为每一个字段配置一个得分算法或 **similarity**(匹配算法)。**similarity** 设置提供了一个简单的方式让你选择匹配算法,而不仅仅是默认的** TF/IDF** 算法,比如可以选择**BM25。** **similarity** 主要用于 **text** 字段,但也可用于其他类型的字段。 自定义匹配算法可以通过修改内置匹配方法的参数来达到目的。要获取此专业选项更详细的解释,可以参考** [similarity module](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/index-modules-similarity.html "Similarity module")****。** 对于能跳出以上限制,而不用任何其他配置的匹配算法只有一下两种: BM25: **Okapi BM25** 算法。这个算法是**Elasticsearch** 和 **Lucene** 的默认算法。可以参考** [Pluggable Similarity Algorithms](https://www.elastic.co/guide/en/elasticsearch/guide/2.x/pluggable-similarites.html) **获取更详细的资料。 classic: **TF/IDF **算法,也是 **Elasticsearch** 和**Lucene** 的默认算法之一。可以参考 **[Lucene’s Practical Scoring Function](https://www.elastic.co/guide/en/elasticsearch/guide/2.x/practical-scoring-function.html)** 获取更详细的资料。 **similarity** 可以在字段第一次创建时在字段级别进行设置,如下: | `curl -XPUT ``'localhost:9200/my_index?pretty'` `-H ``'Content-Type: application/json'` `-d'` `{` `"mappings"``: {` `"my_type"``: {` `"properties"``: {` `"default_field"``: { ``#1` `"type"``: ``"text"` `},` `"classic_field"``: {` `"type"``: ``"text"``,` `"similarity"``: ``"classic"` `#2` `}` `}` `}` `}` `}` `'` | | 1 | **default_field **字段使用 **BM25**匹配算法 | | 2 | **classic_field **字段使用**classic **匹配算法(即 **TF / IDF**) |