ES设置查询的相似度算法
Elasticsearch allows you to configure a scoring algorithm or similarity per field. The similarity
setting provides a simple way of choosing a similarity algorithm other than the default BM25
, such as TF/IDF
.
Similarities are mostly useful for text
fields, but can also apply to other field types.
Custom similarities can be configured by tuning the parameters of the built-in similarities. For more details about this expert options, see the similarity module.
The only similarities which can be used out of the box, without any further configuration are:
BM25
- The Okapi BM25 algorithm. The algorithm used by default in Elasticsearch and Lucene. See Pluggable Similarity Algorithms for more information.
classic
- The TF/IDF algorithm which used to be the default in Elasticsearch and Lucene. See Lucene’s Practical Scoring Function for more information.
boolean
- A simple boolean similarity, which is used when full-text ranking is not needed and the score should only be based on whether the query terms match or not. Boolean similarity gives terms a score equal to their query boost.
The similarity
can be set on the field level when a field is first created, as follows:
PUT my_index { "mappings": { "my_type": { "properties": { "default_field": {

"type": "text" }, "classic_field": { "type": "text", "similarity": "classic"

}, "boolean_sim_field": { "type": "text", "similarity": "boolean"

} } } } }
The |
|
The |
|
The |
Default and Base Similarities
By default, Elasticsearch will use whatever similarity is configured as default
. However, the similarity functions queryNorm()
and coord()
are not per-field. Consequently, for expert users wanting to change the implementation used for these two methods, while not changing the default
, it is possible to configure a similarity with the name base
. This similarity will then be used for the two methods.
You can change the default similarity for all fields in an index when it is created:
PUT /my_index { "settings": { "index": { "similarity": { "default": { "type": "classic" } } } } }
If you want to change the default similarity after creating the index you must close your index, send the follwing request and open it again afterwards:
PUT /my_index/_settings { "settings": { "index": { "similarity": { "default": { "type": "classic" } } } } }
from:https://www.elastic.co/guide/en/elasticsearch/reference/5.4/index-modules-similarity.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」