如何配置Solr从搜索结果中排除某些文档?

时间:2014-09-03 21:58:16

标签: search solr

要从搜索结果中排除某些文档,我可以使用not in或 - negative符号通过查询指定这样的ID。

select/?q=*:*&fq=-id:86+-id:338

如果只需要排除几个ID,这是可以的,但如果我需要从搜索中排除数千个ID,查询将会非常长。我需要从搜索结果中有条件地排除文档列表。如何通过solr配置文件(如创建排除列表)来实现?例如,如果usstate等于NY,CA,VA和以3结尾的邮政编码,我需要从搜索结果中排除文档

1 个答案:

答案 0 :(得分:0)

您可以使用QueryElevationComponent添加要针对特定​​查询排除的文档列表。这将要求您执行与配置文件中提到的查询匹配的搜索,以使其正常工作。

如果您的意思是"我不希望在纽约,加利福尼亚州,美国加利福尼亚州的任何地方持有任何文件,其中邮政编码以3"对于您的示例,您最好只在查询中直接使用该条件(使用-(usstate:(NY OR CA OR VA) AND zipcode:*3)的修改版本来获得所需的行为)(请参阅ReverseWildcardFilterFactory以获得更快的反向匹配) )。