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

In Azure Search, how do you run a "contains" search with multiple terms?

我在 CosmosDB 之上以完整查询模式使用 Azure 搜索,我想 运行 查询任何文档的字段包含字符串 "azy do"。例如,这应该匹配包含 "lazy dog".

的文档

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

拒绝的解决方案

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

"azy do"

不起作用,因为不允许正则表达式跨越多个术语:

/.*azy do.*/

这个"works",在一定程度上会匹配"lazy dog",但这不符合查询的顺序,也会匹配"dog lazy",例如

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

有什么方法可以在 Azure 搜索中正确执行此操作?

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

如果我理解正确的话,这个确切的场景似乎是不可能的。

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

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

这里有一个link供更多阅读:

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