评估搜索质量
这是一项实验性功能,不建议在生产环境中使用。有关该功能进展的更新或如果您想提供反馈,请参阅相关的 GitHub 问题。
搜索相关性工作台可以运行逐点实验,使用提供的查询和相关性判断来评估搜索配置质量。
有关创建查询集的更多信息,请参阅查询集。
有关创建搜索配置的更多信息,请参阅搜索配置。
有关创建判断的更多信息,请参阅判断。
创建逐点实验
逐点实验将您的搜索配置结果与提供的相关性判断进行比较,以评估搜索质量。
请求示例
PUT _plugins/_search_relevance/experiments
{
"querySetId": "a02cedc2-249d-41de-be3e-662f6f221689",
"searchConfigurationList": ["4f90e474-0806-4dd2-a8dd-0fb8a5f836eb"],
"judgmentList": ["d3d93bb3-2cf4-4da0-8d31-c298427c2756"],
"size": 8,
"type": "POINTWISE_EVALUATION"
}
请求正文字段
下表列出了可用的输入参数。
字段 | 数据类型 | 描述 |
---|---|---|
querySetId | 字符串 | 查询集的 ID。 |
searchConfigurationList | 列表 | 用于比较的搜索配置 ID 列表。 |
judgmentList | Array[String] | 用于评估搜索准确性的判断 ID 列表。 |
size | 整数 | 结果中返回的文档数量。 |
type | 字符串 | 要运行的实验类型。有效值包括 PAIRWISE_COMPARISON 、HYBRID_OPTIMIZER 或 POINTWISE_EVALUATION 。根据实验类型,您必须在请求中提供不同的正文字段。PAIRWISE_COMPARISON 用于将两个搜索配置与查询集进行比较,并在此处使用。HYBRID_OPTIMIZER 用于组合结果,并在此处使用。POINTWISE_EVALUATION 用于根据判断评估搜索配置,并在此处使用。 |
示例响应
{
"experiment_id": "d707fa0f-3901-4c8b-8645-9a17e690722b",
"experiment_result": "CREATED"
}
管理结果
要检索实验结果,请遵循在逐对实验中比较查询集的相同过程。
以下是已完成响应的示例
响应
{
"took": 140,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": ".plugins-search-relevance-experiment",
"_id": "bb609dc9-e357-42ec-a956-92b43be0a3ab",
"_score": 1.0,
"_source": {
"id": "bb609dc9-e357-42ec-a956-92b43be0a3ab",
"timestamp": "2025-06-13T08:06:46.046Z",
"type": "POINTWISE_EVALUATION",
"status": "COMPLETED",
"querySetId": "a02cedc2-249d-41de-be3e-662f6f221689",
"searchConfigurationList": [
"4f90e474-0806-4dd2-a8dd-0fb8a5f836eb"
],
"judgmentList": [
"d3d93bb3-2cf4-4da0-8d31-c298427c2756"
],
"size": 8,
"results": [
{
"evaluationId": "10c60fee-11ca-49b0-9e8a-82cb7b2c044b",
"searchConfigurationId": "4f90e474-0806-4dd2-a8dd-0fb8a5f836eb",
"queryText": "tv"
},
{
"evaluationId": "c03a5feb-8dc2-4f7f-9d31-d99bfb392116",
"searchConfigurationId": "4f90e474-0806-4dd2-a8dd-0fb8a5f836eb",
"queryText": "led tv"
}
]
}
}
]
}
}
结果包括每个搜索配置的评估结果 ID。要查看详细结果,请使用此 ID 查询 search-relevance-evaluation-result
索引。
以下是详细结果的示例
响应
{
"took": 59,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "search-relevance-evaluation-result",
"_id": "10c60fee-11ca-49b0-9e8a-82cb7b2c044b",
"_score": 1.0,
"_source": {
"id": "10c60fee-11ca-49b0-9e8a-82cb7b2c044b",
"timestamp": "2025-06-13T08:06:40.869Z",
"searchConfigurationId": "4f90e474-0806-4dd2-a8dd-0fb8a5f836eb",
"searchText": "tv",
"judgmentIds": [
"d3d93bb3-2cf4-4da0-8d31-c298427c2756"
],
"documentIds": [
"B07Q7VGW4Q",
"B00GXD4NWE",
"B07VML1CY1",
"B07THVCJK3",
"B07RKSV7SW",
"B010EAW8UK",
"B07FPP6TB5",
"B073G9ZD33"
],
"metrics": [
{
"metric": "Coverage@8",
"value": 0.0
},
{
"metric": "Precision@8",
"value": 0.0
},
{
"metric": "MAP@8",
"value": 0.0
},
{
"metric": "NDCG@8",
"value": 0.0
}
]
}
}
]
}
}
结果包括原始请求参数以及以下指标值
-
Coverage@k
:判断集中已评分文档的比例,计算方式为有评分的文档数量除以文档总数。 -
Precision@k
:在 k 个文档中(或在返回文档总数较低的情况下)具有非零判断分数的文档比例。 -
MAP@k
:平均精度均值,用于计算所有文档的平均精度。更多信息请参阅平均精度。 -
NDCG@k
:归一化折损累积增益,它将实际结果排名与完美排名进行比较,对靠前的结果给予更高的权重。这衡量了结果排序的质量。