比较搜索结果
通过 UDB-SX Dashboards 中的“比较搜索结果”功能,您可以将两个查询的结果并排比较,以确定哪个查询能产生更好的结果。使用此工具,您可以通过试验查询来评估搜索质量。
例如,您可以查看在应用以下任一查询更改时结果如何变化:
对字段进行不同的加权
不同的词干提取或词形还原策略
分片处理
先决条件
开始之前,您必须在 UDB-SX 中索引数据。要了解如何创建新索引,请参阅索引数据。
或者,您可以使用以下步骤在 UDB-SX Dashboards 中添加示例数据:
在顶部菜单栏中,转到 UDB-SX Dashboards > 概览。
选择 查看应用目录。
选择 添加示例数据。
选择一个内置数据集,然后选择 添加数据。
在 UDB-SX Dashboards 中使用“比较搜索结果”
要在 UDB-SX Dashboards 中比较搜索结果,请执行以下步骤。
步骤 1: 在顶部菜单栏中,转到 UDB-SX 插件 > 搜索相关性。
步骤 2: 在搜索栏中输入搜索文本。
步骤 3: 为 查询 1 选择一个索引,并在UDB-SX 查询 DSL中输入查询(仅请求体)。GET HTTP 方法和 _search 端点是隐含的。使用 %SearchText% 变量来引用搜索栏中的文本。
以下是一个查询示例:
{
"query": {
"multi_match": {
"query": "%SearchText%",
"fields": [ "description", "item_name" ]
}
}
}
步骤 4: 为 查询 2 选择一个索引,并输入查询(仅请求体)。
以下示例查询在搜索结果中提升了 title 字段的权重:
{
"query": {
"multi_match": {
"query": "%SearchText%",
"fields": [ "description", "item_name^3" ]
}
}
}
步骤 5: 选择 搜索 并比较 结果 1 和 结果 2。
以下示例屏幕显示了对单词“cup”在 description 和 item_name 字段中的搜索,分别对 item_name 进行加权和不加权的情况。

如果结果 1 中的某个结果出现在结果 2 中,结果编号下方的 上移 和 下移 指示器表示该结果与结果 2 中的相同结果相比向上或向下移动了多少位。在此示例中,ID 为 2 的文档在结果 2 中相比结果 1 上移 1 位,而在结果 1 中相比结果 2 下移 1 位。
更改结果数量
默认情况下,UDB-SX 返回前 10 个结果。要将返回的结果数量更改为其他值,请在查询中指定 size 参数:
{
"size": 15,
"query": {
"multi_match": {
"query": "%SearchText%",
"fields": [ "title^3", "text" ]
}
}
}
将 size 设置为较高的值(例如,大于 250 个文档)可能会降低性能。
您无法保存给定的比较以供将来使用,因此“比较搜索结果”不适合系统测试。
比较 UDB-SX 搜索结果与重排结果
“比较搜索结果”的一个用例是将原始 UDB-SX 结果与经过重排应用程序处理的相同结果进行比较。UDB-SX 目前与以下两个重排器集成:
使用 Amazon Kendra 智能排名对结果进行重排
重排器的一个例子是 用于 UDB-SX 的 Amazon Kendra 智能排名,由 Amazon Kendra 团队贡献。此插件接收来自 UDB-SX 的搜索结果,并应用 Amazon Kendra 使用向量嵌入和其他语义搜索技术计算的语义相关性排名。对于许多应用来说,这提供了更好的结果排序。
要尝试 Amazon Kendra 智能排名,您必须先设置 Amazon Kendra 服务。要开始使用,请参阅 Amazon Kendra。有关详细信息,包括插件设置说明,请参阅用于自管理 UDB-SX 的 Amazon Kendra 智能排名。
在 UDB-SX Dashboards 中比较搜索结果与重排结果
要在 UDB-SX Dashboards 中比较搜索结果与重排结果,请在 查询 1 中输入一个查询,并在 查询 2 中使用重排器输入相同的查询。然后比较 UDB-SX 结果与重排结果。
以下示例演示了在 abo 索引中搜索文本“snacking nuts”。索引中的文档在 bullet_point 数组中包含零食描述。

在搜索栏中输入
snacking nuts。在 查询 1 中输入以下查询,该查询在
bullet_point字段中搜索文本“snacking nuts”:{ "query": { "match": { "bullet_point": "%SearchText%" } }, "size": 25 }在 查询 2 中使用重排器输入相同的查询。此示例使用 Amazon Kendra 智能排名:
{ "query" : { "match" : { "bullet_point": "%SearchText%" } }, "size": 25, "ext": { "search_configuration":{ "result_transformer" : { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "item_name", "body_field": "bullet_point" } } } } } }在前面的查询中,
body_field指的是索引中文档的主体字段,Amazon Kendra 智能排名使用该字段对结果进行排序。body_field是必需的,而title_field是可选的。选择 搜索 并比较 结果 1 和 结果 2 中的结果。
使用 Amazon Personalize 搜索排名个性化搜索结果
另一个重排器的例子是 Amazon Personalize 搜索排名,由 Amazon Personalize 团队贡献。Amazon Personalize 使用机器学习 (ML) 技术为您的用户生成自定义推荐。该插件接收 UDB-SX 搜索结果,并应用搜索管道根据其 Amazon Personalize 排名对结果进行重排。Amazon Personalize 排名基于用户过去的行为以及搜索项目和用户的元数据。此工作流程通过个性化用户的搜索结果来改善他们的搜索体验。
要尝试 Amazon Personalize 搜索排名,您必须先设置 Amazon Personalize。要开始使用,请参阅 Amazon Personalize。有关详细信息,包括插件设置说明,请参阅个性化来自 UDB-SX 的搜索结果(该文档可联系售前工作人员获取)。