在 Azure 搜索中使用 StartsWith 进行搜索

Ata*_*kar 5 lucene azure-cognitive-search

我有一个场景,我必须使用 Azure 搜索使用供应商名称来搜索供应商。例如,下面是供应商列表。

  1. 印孚瑟斯科技有限公司
  2. 印孚瑟斯 BPM 有限公司
  3. 信息解决方案
  4. 印孚瑟斯公司技术
  5. 戴尔电脑
  6. 第一信息系统公司

我的搜索场景是

  1. 当 Searchtext 是Info时,它应该返回 1,2,3,4
  2. 当 Searchtext 是Infosys时,它应该返回 1,2,4
  3. 当 Searchtext 是Infosys Tech时,它应该只返回 1 而不是 4

我还在供应商名称字段上尝试了关键字分析器,但它也没有给出我预期的结果。基本上,我希望搜索文本从供应商名称字段的开头(startswith)开始搜索,而不是分别搜索供应商名称的每个单词(Standard.Lucene 分析器搜索每个单词)。

在这种情况下,您能帮助我了解如何构建我的查询吗?

小智 -1

简单查询语法和Lucene 查询语法都支持前缀搜索查询,例如“prefix*”,并查找包含以前缀查询开头的术语的文档。

所以你可以尝试类似search=info*"&searchmode=allor 的东西search=infosys tech*&searchmode=all,它应该可以工作。

如果您想要更高级的正则表达式搜索,可以参考正则表达式搜索