在Azure搜索中,如何运行"包含"用多个术语搜索?

时间:2017-10-17 13:03:04

标签: azure-cosmosdb azure-search

我在CosmosDB之上以完全查询模式使用Azure搜索,我想对包含字符串" azy do"的字段的任何文档运行查询。例如,这应该与包含"懒狗"。

的文档相匹配

阅读Azure搜索文档,由于它使用的基于术语的索引,看起来这是不可能的。

拒绝解决方案

0匹配,因为它正在寻找整个单词:

"azy do"

由于不允许正则表达式涵盖多个术语,因此无法正常工作:

/.*azy do.*/

这"工作",只要它匹配"懒狗",但这不尊重查询的顺序,也会匹配" dog lazy& #34;,例如

/.*azy.*/ AND /.*do.*/    

有没有办法在Azure搜索中正确执行此操作?

如果要测试潜在的解决方案,可以修改使用Azure搜索的演示Microsoft实例的search变量in this JSFiddle

1 个答案:

答案 0 :(得分:2)

如果我理解正确的话,这种确切的情况是不可能出现的。

如果没有正则表达式通配符,您可以进行邻近搜索:

var search = '"business budget"~3';

这是一个更多阅读的链接:

https://docs.microsoft.com/en-us/rest/api/searchservice/lucene-query-syntax-in-azure-search