使用 Learning To Rank 进行搜索

编辑

使用 Learning To Rank 进行搜索编辑

Learning To Rank 功能目前处于技术预览阶段,未来版本中可能会更改或移除。Elastic 将努力修复任何问题,但此功能不受官方 GA 功能支持 SLA 的约束。

此功能在版本 8.12.0 中引入,并且仅适用于某些订阅级别。有关更多信息,请参阅 https://elastic.ac.cn/subscriptions

Learning To Rank 作为重打分器编辑

在 Elasticsearch 中训练和部署 LTR 模型后,它可以用作 重打分器搜索 API

GET my-index/_search
{
  "query": { 
    "multi_match": {
      "fields": ["title", "content"],
      "query": "the quick brown fox"
    }
  },
  "rescore": {
    "learning_to_rank": {
      "model_id": "ltr-model", 
      "params": { 
        "query_text": "the quick brown fox"
      }
    },
    "window_size": 100 
  }
}

提供要重新打分的文档的第一遍查询。

上传到 Elasticsearch 的已训练模型的唯一标识符。

要传递给用于特征的查询模板的命名参数。

重打分器应在每个分片上检查的文档数量。

已知限制编辑
重打分窗口大小编辑

LTR 模型返回的分数通常与第一遍查询发布的分数没有可比性,并且可能低于未重打分的分数。这可能会导致未重打分的結果文档排名高于重打分的文档。为了防止这种情况,window_size 参数对于 LTR 重打分器是必需的,并且应该大于或等于 from + size

分页编辑

向用户公开分页时,window_size 应该在翻页时保持不变,方法是传递不同的 from 值。更改 window_size 可能会改变热门结果,导致结果在用户翻页时发生混乱的偏移。

负分数编辑

根据模型的训练方式,模型可能会为文档返回负分数。虽然第一阶段检索和排名不允许负分数,但在 LTR 重打分器中可以使用它们。

与字段折叠的兼容性编辑

LTR 重打分器与 折叠功能 不兼容。

术语统计信息作为特征编辑

我们目前不支持将术语统计信息作为特征,但未来版本将引入此功能。