Azure 搜索索引:以相反的顺序标记单词

问题描述 投票:0回答:1

我有一个由“姓氏,名字”组成的集合字段,它正确生成两个标记,但我想生成第三个标记(木瓦),但格式为“名字姓氏”。

示例: 索引上的数据是“Bond, James”

搜索 James Bond 将带来包含“James”或“Bond”的结果,这正是我想要的,但我希望将名称为“James Bond”的结果排在最前面。 (例如,一个结果在多个地方都有“邦德”一词,但没有詹姆斯,则排名会更高)。 相比之下,如果用户搜索Bond James,结果与我想要的完全匹配,但大多数用户不会先输入姓氏。

有没有办法生成这个额外的令牌,或者至少在找到两个令牌时提高答案?

我尝试创建一个ShingleFilter来生成名称组合,但无法“反转”单词的顺序。我认为使用正则表达式模式可能可以实现这一点,但无法使其发挥作用。

搜索还用于按预期工作的其他字段,因此我无法反转搜索词。如果可能的话,我希望避免反转 Azure SQL 数据库上的字段。

azure-cognitive-search shingles
1个回答
0
投票

目前,不直接支持“反转”单词顺序,但有一种增强策略可以使用评分profile对同时存在“James”和“Bond”标记的结果进行优先级排序。

  • 评分配置文件在搜索索引中定义,并在查询请求中的非向量字段上调用。

enter image description here

  • 评分配置文件是根据您提供的参数提高搜索分数的标准。例如,您可能希望在“标签”字段中找到的匹配比在“描述”字段中找到的相同匹配更相关。标准可以是加权字段(例如“标签”示例)或函数

要创建评分配置文件以提升以所需顺序找到两个标记的文档,请按照以下步骤操作:

  1. 转到索引并选择评分配置文件以添加评分配置文件。 enter image description here

  2. 在“函数”中选择“函数聚合”。

  3. 添加评分功能。 当简单的相对权重不足或不适用时,请使用函数,例如距离和新鲜度,它们是对数值数据的计算。您可以为每个评分配置文件指定多个函数。有关 Azure AI 搜索中使用的 EDM 数据类型的详细信息,请参阅支持的数据类型

enter image description here

  1. 保存函数和索引。要查看更改,请重新启动并运行索引器。 enter image description here

enter image description here

  1. 按照此链接获取用于 Azure AI 搜索的 REST API。
© www.soinside.com 2019 - 2024. All rights reserved.