【问题标题】:How to config Solr to exclude certain documents from search result?如何配置 Solr 从搜索结果中排除某些文档?
【发布时间】:2015-08-28 20:56:36
【问题描述】:

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

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

如果只需要排除几个 id 就可以了,但是如果我有数千个 id 需要从搜索中排除,则查询将非常长。我需要有条件地从搜索结果中排除文档列表。如何通过 solr 配置文件来完成,例如创建排除列表?例如,如果 usstate 等于 NY、CA、VA 且邮政编码以 3 结尾,我需要从搜索结果中排除文档

【问题讨论】:

  • 添加一个新的布尔字段“排除”。使用值 true 更新这些文档中的字段。 &fq=-exclude:true
  • 是的,有这样的字段可以用来排除它们,但是要求声明不要使用这个字段。有没有办法通过配置来做到这一点?

标签: search solr


【解决方案1】:

您可以使用QueryElevationComponent 添加要排除特定查询的文档列表。这将要求您执行与配置文件中提到的查询相匹配的搜索才能工作。

如果您的示例是“我不想让 usstate 为 NY、CA、VA 且邮政编码以 3 结尾的任何文件”,那么您最好直接在您的查询(使用 -(usstate:(NY OR CA OR VA) AND zipcode:*3) 的修改版本来获得您想要的行为)(请参阅 ReverseWildcardFilterFactory 以获得更快的反向匹配)。

【讨论】:

  • 无论查询字符串如何,我都需要排除文档列表,因此提升不起作用,对吗? solr 不是将查询条件 -(usstate:(NY OR CA OR VA) AND zipcode:*3) 放在查询本身中,而是允许您将其放入配置文件中,以便此条件将应用于所有传入的查询?
猜你喜欢
  • 1970-01-01
  • 2012-05-30
  • 2023-03-13
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2020-01-04
  • 1970-01-01
相关资源
最近更新 更多