endpoint/search?q=shelim&fq=(or (not type:'XYZ') (not mod:'ABC'))&return=_all_fields
我的结果返回类型 XYZ
的数据,而我已经提到不返回查询中XYZ
的值。有什么问题吗?还告诉我为什么q
和fq
是为了什么?
如云搜索文档中所述
使用 fq 参数筛选与搜索匹配的文档 使用 q 参数指定的条件,而不影响 搜索结果中包含的文档的相关性分数。 指定筛选器仅控制哪些匹配文档 包含在结果中,它对它们的评分方式没有影响,并且 排序。
q
参数是您输入实际查询的位置。
关于你的数据类型标准,你基本上是在做
where type != 'XYZ' OR type != 'ABC'
您需要使用AND
条件 ( (and (not type:'XYZ') (not mod:'ABC'))
(,以便过滤掉没有类型 XYZ
和没有类型 ABC
的文档。
通过查询,将筛选出类型为 ABC
的文档,但其中一些文档的类型为 XYZ
。这些包括在内,因为您使用的是OR
条件。