正在加载

使用 LTR 进行搜索

Elastic Stack Serverless

注意

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

一旦您的 LTR 模型经过训练并部署在 Elasticsearch 中,它就可以在 搜索 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
  }
}
  1. 第一遍查询,提供要重新评分的文档。
  2. 上传到 Elasticsearch 的训练模型的唯一标识符。
  3. 要传递给用于特征的查询模板的命名参数。
  4. 重新评分器应在每个分片上检查的文档数。

LTR 模型返回的分数通常与第一遍查询发出的分数不具可比性,并且可能低于未重新评分的分数。这可能导致未重新评分的结果文档的排名高于重新评分的文档。为防止这种情况,window_size 参数对于 LTR 重新评分器是强制性的,并且应大于或等于 from + size

当向用户公开分页时,window_size 应保持不变,因为每页都通过传递不同的 from 值来前进。更改 window_size 可能会改变最热门的结果,导致结果在用户浏览页面时产生令人困惑的偏移。

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

© . All rights reserved.