我在使用Azure认知搜索时遇到问题。我在搜索索引中有一个“name”字段,我希望找到仅以搜索词开头的文本,而不仅仅是文本中的任何内容。我已经尝试使用默认分析器和关键字分析器,但我似乎不能得到我想要的结果。
让我给予你一个我的数据的例子:
城市红红1红2
在本例中,我只想得到“red 1”和“red 2”作为结果。但我尝试的搜索查询到目前为止还没有成功。
当我使用默认分析器时,它返回所有内容。另一方面,使用关键字分析器,我根本得不到任何结果。
以下是我使用的搜索词:
“Re*”
正则表达式:“/Re*./i”
不幸的是,这两种方法都没有给我想要的结果。我以为在关键字分析器中使用正则表达式就可以了,但是没有成功。
有没有人能帮我找出我可能做错了什么?是否有其他方法或不同的搜索查询语法,我应该使用,以获得我需要的结果?
我真的很感激你能提供的任何帮助。提前感谢!
编辑:请求选项:
SearchQueryType.Full,
SearchMode = SearchMode.Any(我也试过All)
1条答案
按热度按时间u0sqgete1#
正如@giulianob所链接的,你需要使用一个EdgeNGramTokenFilter沿着keyword_v2 tokenizer来获得结果。
参考链接https://learn.microsoft.com/en-us/azure/search/search-query-partial-matching#tune-query-performance
编辑:实际上,当搜索短语之间有空格时,这不起作用。
字符串