相似度
编辑similarity
编辑Elasticsearch 允许你为每个字段配置文本评分算法或相似度。similarity
设置提供了一种简单的方法,可以选择除默认的 BM25
之外的文本相似度算法,例如 boolean
。
只有基于文本的字段类型(如 text
和 keyword
)支持此配置。
可以通过调整内置相似度的参数来配置自定义相似度。有关此高级选项的更多详细信息,请参阅相似度模块。
开箱即用,无需任何进一步配置即可使用的相似度只有以下几种:
-
BM25
- Okapi BM25 算法。Elasticsearch 和 Lucene 中默认使用的算法。
-
boolean
- 一个简单的布尔相似度,当不需要全文排名,并且分数仅应基于查询项是否匹配时使用。布尔相似度赋予词项的分数等于它们的查询提升值。
当首次创建字段时,可以在字段级别设置 similarity
,如下所示:
resp = client.indices.create( index="my-index-000001", mappings={ "properties": { "default_field": { "type": "text" }, "boolean_sim_field": { "type": "text", "similarity": "boolean" } } }, ) print(resp)
response = client.indices.create( index: 'my-index-000001', body: { mappings: { properties: { default_field: { type: 'text' }, boolean_sim_field: { type: 'text', similarity: 'boolean' } } } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", mappings: { properties: { default_field: { type: "text", }, boolean_sim_field: { type: "text", similarity: "boolean", }, }, }, }); console.log(response);