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,但最好使用库函数来转义所有输入的搜索文本,而不是对任何特定字符进行特殊处理;有在大多数环境中都有这个功能,他们知道哪些字符需要转义)。
我有一个相当简单的索引,其中所有 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,但最好使用库函数来转义所有输入的搜索文本,而不是对任何特定字符进行特殊处理;有在大多数环境中都有这个功能,他们知道哪些字符需要转义)。