谁能给我解释一下 2013 版 amazon cloudsearch api 中的 q vs fq?

Can anyone explain me about q vs fq in amazon cloudsearch api version 2013?

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

我的结果 returns 类型 XYZ 的数据,而我已经提到不要在查询中为 XYZ 设置 return 值。有什么问题吗?还告诉我为什么 qfq 是为了?

Cloudsearch Documentation

中所述

You use the fq parameter to filter the documents that match the search criteria specified with the q parameter without affecting the relevance scores of the documents included in the search results. Specifying a filter just controls which matching documents are included in the results, it has no effect on how they are scored and sorted.

q 参数是您输入实际查询的地方。

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

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

您需要使用 AND 条件 ((and (not type:'XYZ') (not mod:'ABC'))),以便过滤掉不具有类型 XYZ 和不具有类型 ABC 的文档.

对于您的查询,类型为 ABC 的文档被过滤掉 ,但其中一些文档的类型为 XYZ。这些都包含在内,因为您使用的是 OR 条件。