逻辑运算符(+,||等)是否可以在Azure搜索中处理多个文档(blob)?

时间:2019-08-13 06:10:29

标签: azure azure-cognitive-search

我已经为数据库以及存储库中具有Blob的容器配置了Azure搜索。 单个单词搜索在所有数据源中都能正常工作。而且,使用逻辑运算符进行的多个单词搜索在单个Blob的上下文中也可以正常工作。 但是,它不能给我理想的结果,因为我的搜索需要在收集Blob的上下文中工作。

我有一个附加了多个文档的数据库对象(作为blob存储在Container下的不同文件夹中)。我的搜索(带有多个单词和逻辑运算符)需要向用户显示该业务对象,以防其遇到对附加到该业务对象的多个文档有效的条件。

因此,我有一个附加了文档“ B”,“ C”和“ D”的业务对象“ A”,存储在容器下的文件夹“ E”中(已在我的Azure搜索中创建了Indexer) 。文档B中有单词“ king”,而文档C中有单词“ queen”。在这种情况下,如果我搜索“ king + queen”,那么它不会给出任何结果。我想在搜索结果中得到“ A”,因为它总体上满足“ king + Queen”的条件。

1 个答案:

答案 0 :(得分:1)

Azure搜索查询中的

布尔运算符在单个文档级别上工作。在您的示例中,查询“ king + queen”将搜索同时包含“ king”和“ queen” – read more here about simple query syntax的文档。

如果您对业务对象“ A”有其他识别标准(例如名称 object-id 字段),则可以构造查询以捕获该查询,并使用逻辑“或”列出关键字,例如–使用 queryType = simple (默认设置)时为“ A +(国王|女王)”。您也可以考虑将 queryType = full 模式用于更具表达力的查询语言,在该语言中,您还可以表达各个字段的期望值(例如“ name:A ”)。有关更多信息,请参见Lucene query syntax in Azure Search