在亚马逊cloudsearch api版本2013中有谁能解释一下q vs fq?

时间:2015-02-18 08:17:07

标签: php amazon-cloudsearch

endpoint/search?q=shelim&fq=(or (not type:'XYZ') (not mod:'ABC'))&return=_all_fields

我的结果返回类型XYZ的数据,而我已经提到不要在查询中返回XYZ的值。有什么不对的吗?还请告诉我qfq的原因是什么?

1 个答案:

答案 0 :(得分:0)

正如Cloudsearch Documentation

中所述
  

使用fq参数过滤与搜索匹配的文档   使用q参数指定的条件而不影响   搜索结果中包含的文档的相关性分数。   指定过滤器只控制匹配的文档   包括在结果中,它对他们的评分方式没有影响   排序

q参数是您输入实际查询的位置。

关于您的数据类型标准,您基本上是在做

where type != 'XYZ' OR type != 'ABC'

您需要使用AND条件((and (not type:'XYZ') (not mod:'ABC'))),因此不具有XYZ类型但不具有ABC类型的文档是过滤掉了。

使用您的查询,类型为ABC的文档将被过滤掉,但其中一些文档的类型为XYZ 。由于您使用的是OR条件,因此我们会将其包含在内。