谁能解释一下亚马逊云搜索 API 版本 2013 中的 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

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

如云搜索文档中所述

使用 fq 参数筛选与搜索匹配的文档 使用 q 参数指定的条件,而不影响 搜索结果中包含的文档的相关性分数。 指定筛选器仅控制哪些匹配文档 包含在结果中,它对它们的评分方式没有影响,并且 排序。

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

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

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

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

通过查询,将筛选出类型为 ABC 的文档,但其中一些文档的类型为 XYZ 。这些包括在内,因为您使用的是OR条件。