分数排序器处理器
score-ranker-processor 是一个基于排序的搜索阶段结果处理器,它在搜索执行的查询阶段和提取阶段之间运行。它拦截查询阶段的结果,然后使用逆序排名融合(RRF)算法来合并不同的查询子句,从而生成最终的搜索结果排序列表。RRF 是一种合并多个查询的方法,它根据每个文档在各个查询中的排名的倒数进行评分,然后将这些分数相加,从而创建最终的统一排名。
请求体字段
下表列出了所有可用的请求字段。
| 字段 | 数据类型 | 描述 |
|---|---|---|
combination.technique |
字符串 | 用于合并分数的技术。必需。有效值为 rrf。 |
combination.rank_constant |
整数 | 在计算倒数分数之前,添加到每个文档排名上的常数。必须大于或等于 1。较大的排名常数会使分数更均匀,降低排名靠前结果的影响力。较小的排名常数会在不同排名间产生更大的分数差异,给予排名靠前的条目更多权重。可选。默认值为 60。 |
示例
以下示例演示了如何使用包含 score-ranker-processor 的搜索管道。
创建搜索管道
以下请求创建了一个搜索管道,其中包含一个使用 rrf 合并技术的 score-ranker-processor:
PUT /_search/pipeline/<rrf-pipeline>
{
"description": "Post processor for hybrid RRF search",
"phase_results_processors": [
{
"score-ranker-processor": {
"combination": {
"technique": "rrf"
}
}
}
]
}
使用搜索管道
应用上一节创建的搜索管道,以便使用所选技术合并分数。在此示例中,您将把 rank_constant 作为管道的一部分进行指定:
PUT /_search/pipeline/<rrf-pipeline>
{
"description": "Post processor for hybrid RRF search",
"phase_results_processors": [
{
"score-ranker-processor": {
"combination": {
"technique": "rrf",
"rank_constant": 40
}
}
}
]
}
有关设置混合搜索的更多信息,请参阅 混合搜索。