在这种情况下,我必须使用Azure搜索使用供应商名称来搜索供应商。例如,下面是供应商列表。
我的搜索场景是
我还在供应商名称字段上尝试了关键字分析器,但它也没有给出我期望的结果。基本上,我希望searchtext从供应商名称字段的开头(startswith)开始搜索,而不是从供应商名称的每个单词(Standard.Lucene Analyzer在每个单词上搜索)单独搜索。
在这种情况下,请问您能如何帮助我查询框架?
答案 0 :(得分:0)
从Nate Ko的答案here:
您似乎想对整个域名发出前缀搜索查询 字段值不在字段中的各个术语上。在这种情况下 您需要使用关键字分析器,以便整个字段值为 标记化为单个标记。例如,假设“ 16th Ave SE”为 输入,默认情况下,Azure搜索使用标准分析器并标记化 输入为多个术语,如<16th>,和前缀 搜索根据标记化的术语进行。如果您使用关键字 而不是分析器,将整个字段值标记为单个 标记为<16th ave se>并且前缀搜索search = 16th *只会找到 带有以前缀开头的字段的文档。同样, 通过正则表达式搜索后缀搜索= /。* ave /将仅查找具有字段的文档 以后缀结尾。以下是有关的相关问题 stackoverflow。
http://stackoverflow.com/questions/40857057/how-to-practially-use-a-keywordanalyzer-in-azure-search
答案 1 :(得分:-1)
Simple query syntax和Lucene query syntax都支持前缀搜索查询(例如“ prefix *”),并查找包含以前缀查询开头的术语的文档。
因此,您可以尝试使用search=info*"&searchmode=all
或search=infosys tech*&searchmode=all
之类的方法,它应该可以工作。
如果您想要更高级的正则表达式(例如搜索),可以参考Regular expression search