我有一个由“姓氏,名字”组成的集合字段,它正确生成两个标记,但我想生成第三个标记(木瓦),但格式为“名字姓氏”。
示例: 索引上的数据是“Bond, James”
搜索 James Bond 将带来包含“James”或“Bond”的结果,这正是我想要的,但我希望将名称为“James Bond”的结果排在最前面。 (例如,一个结果在多个地方都有“邦德”一词,但没有詹姆斯,则排名会更高)。 相比之下,如果用户搜索Bond James,结果与我想要的完全匹配,但大多数用户不会先输入姓氏。
有没有办法生成这个额外的令牌,或者至少在找到两个令牌时提高答案?
我尝试创建一个ShingleFilter来生成名称组合,但无法“反转”单词的顺序。我认为使用正则表达式模式可能可以实现这一点,但无法使其发挥作用。
搜索还用于按预期工作的其他字段,因此我无法反转搜索词。如果可能的话,我希望避免反转 Azure SQL 数据库上的字段。
目前,不直接支持“反转”单词顺序,但有一种增强策略可以使用评分profile对同时存在“James”和“Bond”标记的结果进行优先级排序。
要创建评分配置文件以提升以所需顺序找到两个标记的文档,请按照以下步骤操作:
转到索引并选择评分配置文件以添加评分配置文件。
在“函数”中选择“函数聚合”。
添加评分功能。 当简单的相对权重不足或不适用时,请使用函数,例如距离和新鲜度,它们是对数值数据的计算。您可以为每个评分配置文件指定多个函数。有关 Azure AI 搜索中使用的 EDM 数据类型的详细信息,请参阅支持的数据类型。