Link Search Menu Expand Document Documentation Menu

相似度

similarity 映射参数允许您自定义在搜索过程中如何为文本字段计算相关性分数。它定义了用于对匹配文档进行排名的评分算法,这直接影响搜索响应中结果的排序方式。

支持的相似性类型

  • BM25(默认):使用现代的概率排名模型,该模型平衡了词频、文档长度和逆文档频率。
  • boolean:返回常量分数(10),因此如果您只关心匹配而不关心相关性,则应使用此类型。

在字段上设置自定义相似性

以下请求创建一个名为 products 的索引,其中 title 字段使用 boolean 相似性,该相似性为所有匹配项分配相同的分数

PUT /products
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "similarity": "boolean"
      }
    }
  }
}

索引文档

使用以下命令索引示例文档

PUT /products/_doc/1
{
  "title": "Compact Wireless Mouse"
}

查询和检查评分影响

使用以下命令按 title 字段搜索

POST /products/_search
{
  "query": {
    "match": {
      "title": "wireless mouse"
    }
  }
}

您可以检查响应中 _score 字段返回的分数

{
  ...
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 2,
    "hits": [
      {
        "_index": "products",
        "_id": "1",
        "_score": 2,
        "_source": {
          "title": "Compact Wireless Mouse"
        }
      }
    ]
  }
}
剩余 350 字符

有问题?

想贡献?