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

标签 azure-cosmosdb azure-cognitive-search

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

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

被拒绝的解决方案

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

"azy do"

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

/.*azy do.*/

这个“有效”,可以匹配“lazy dog”,但是这不符合查询的顺序,也可以匹配“dog lazy”,例如

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

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

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

最佳答案

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

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

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

这里是更多阅读的链接:

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

关于azure-cosmosdb - 在 Azure 搜索中,如何使用多个术语运行 "contains"搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46790836/

相关文章:

azure - Azure 搜索中的分组依据和计数

elasticsearch - 将ElasticSearch和Azure搜索作为常规数据存储与搜索结合使用是否合适?

c# - Azure DocumentDb - 查询空间数据

azure - 如何在 DocumentDb .NET SDK 上使用 ReadDocumentFeedAsync?

Azure Cosmos DB - 超出每个帐户的最大数量 'Collection'。当前配置的配额 100

azure - 错误 - x-ms-partitionkey header 中提供的分区键的组件少于集合中定义的组件

azure - 为什么 Azure 认知搜索优先考虑文档内容而不是名称?

c# - Azure Cosmos DB 选择 min(int field) 返回 0

azure 搜索完全匹配

postgresql - 类似于 Logstash 的 Azure 认知搜索工具?