这个问题/答案涉及一个非常相似的主题,但我找不到我正在寻找的解决方案。 How to practially use a keywordanalyzer in azure-search?
起始情况:
我创建了一个包含多个索引的资源。其中一个索引包含Collection(Edm.String)字段。从这个字段我只想获得准确包含搜索词的文档。例如,该字段包含如下文档:“Hovercraft zero”,“Hovercraft one”,“Hovercraft two”。
如果搜索词是“悬停”,则应返回所有三个文档。如果搜索词是“craft zer”,则只返回文档“Hovercraft zero”。该文件不应该获得更高的分数,期望的行为是我只得到“气垫船零”文件作为结果。
更多的信息:
无法将searchmode设置为all(就像在顶部的问题中建议的那样),因为我只想为此特定字段设置此行为,而不是为所有搜索查询设置此行为。也不可能让用户负责输入带引号的搜索词。
到目前为止我尝试过的:
这个问题有什么解决方案吗?或者是否有其他方法可以实现所需的行为?
希望有人可以提供帮助。
提前致谢!
使用你的三个文件的例子:“气垫船零”,“气垫船一号”,“气垫船二号”
另外,请使用Analyze API测试您的自定义分析仪配置。它将帮助您确保分析仪生成您期望的术语。
感谢@Yahnoosh的回答,我找到了一个适合我的解决方案。
简短示例:我有一个包含三个字段的索引(field1,field2,field3)。从field3我想要一个文件完全包含搜索词的结果。从field1和field2我想得到一个“标准”的结果。
解决方案:我将searchquery操作为 - >
field1:{searchterm} || field2:{searchterm} || field3:“{searchterm}”&queryType = full
使用此searchquery field1和field2以“标准”方式查询,并使用我正在搜索的行为查询field3。当然,有更有效和优雅的方法来解决这个问题,但它对我有用。
如果有人有更好的解决方案,请告诉我;)