endpoint/search?q=shelim&fq=(or (not type:'XYZ') (not mod:'ABC'))&return=_all_fields
我的结果返回类型XYZ
的数据,而我已经提到不要在查询中返回XYZ
的值。有什么不对的吗?还请告诉我q
和fq
的原因是什么?
答案 0 :(得分:0)
使用fq参数过滤与搜索匹配的文档 使用q参数指定的条件而不影响 搜索结果中包含的文档的相关性分数。 指定过滤器只控制匹配的文档 包括在结果中,它对他们的评分方式没有影响 排序
q
参数是您输入实际查询的位置。
关于您的数据类型标准,您基本上是在做
where type != 'XYZ' OR type != 'ABC'
您需要使用AND
条件((and (not type:'XYZ') (not mod:'ABC'))
),因此不具有XYZ
类型但不具有ABC
类型的文档是过滤掉了。
使用您的查询,类型为ABC
的文档将被过滤掉,但其中一些文档的类型为XYZ
。由于您使用的是OR
条件,因此我们会将其包含在内。