Azure 搜索返回不一致的结果

Azure Search returning inconsistent results

我有一个相当简单的索引,其中所有 10 个左右的字段都是可搜索的字符串,我的搜索模式是 "all"。

为了简单起见,假设我发出以下搜索: -(x|y|z) 我得到了所有没有 x、y 或 z 的文档。

假设我发出以下搜索: (i+j) 我得到了所有包含术语 i 和 j 的文档。

假设两次搜索返回的文档之间存在相当大的重叠。

我本以为在 "all" searchMode 中,如果我发出以下命令: (i+j) -(x|y|z)

我会收到不包含 x、y 或 z 的 i 和 j 的子集。换句话说,组合查询的结果将不包含来自单个查询结果的任何条目 -(x|y|z).

但事实并非如此

要么是我误解了功能,要么是我收到了错误的结果。

谁能帮我解释一下?

谢谢

Azure 搜索应该对此给出一致的答案,如果没有请告诉我们。

在这种情况下,在 URL 中转义“+”是一个问题(请参阅评论)。 URL 查询字符串中的搜索文本需要转义(例如 + 应显示为 %2B,但最好使用库函数来转义所有输入的搜索文本,而不是对任何特定字符进行特殊处理;有在大多数环境中都有这个功能,他们知道哪些字符需要转义)。