我在CosmosDB之上以完全查询模式使用Azure搜索,我想对包含字符串“azy do”的字段的任何文档运行查询。例如,这应该与包含“懒狗”的文档匹配。
阅读Azure搜索文档,由于它使用了基于术语的索引,因此看起来这是不可能的。
拒绝解决方案
0匹配,因为它正在寻找整个单词:“azy do”
不起作用,因为不允许正则表达式跨越多个术语:/。 azy do。 /
这“工作”,在某种程度上它会匹配“懒狗”,但这不符合查询的顺序,也会匹配“狗懒”,例如/。 azy。 / AND /.do./
有没有办法在Azure搜索中正确执行此操作?
答案 0 :(得分:0)
如果你无法通过Lucene Query语法中的正则表达式实现这一点,则无法实现。您可能希望投票支持包含here。
答案 1 :(得分:0)
应该是/.lazy|dog./ 因此,根据空格拆分术语,并添加一个管道(|)分隔符,代表OR。
答案 2 :(得分:0)
很快,Azure搜索不支持此方案。您可能最好使用Cosmos DB中的CONTAINS函数或其等效函数,具体取决于您使用的查询语言。
Azure搜索旨在查找非结构化内容(文档)中出现的术语或短语,并返回最相关的文档。提取和索引这些可搜索术语的过程可以自定义并在此处描述:How full text search works in Azure Search。