SOLR:如何在全球范围内排除字段?

SOLR: how to exclude fields globally?

我使用 apache Solr 进行站点搜索。该网站有大量页面,每个页面都有一个名为“searchEnabled”的字段。这是一个包含值 truefalse 的布尔字段。如果 searchEnabled 字段设置为 false,我想从所有搜索结果中排除禁用页面(该网站有许多不同的搜索)。

我可以使用过滤器查询 (fq) 来排除该字段。但是我的网站正在使用具有不同查询的不同搜索的数量。我不想在整个网站的所有搜索查询中添加过滤器查询。有什么简单的方法可以禁用字段 'searchEnabled' 设置为 false 的索引吗?

因此任何 solr 搜索都不会 return 字段值设置为 false.

的 document/pages

您可以为 the request handler you're making your request against 添加一个始终存在于 solrconfig.xml 的参数。

通过为参数列表使用名称 appends,该参数将始终附加到其他给定参数。

<requestHandler name="/select" class="solr.SearchHandler">
  <lst name="appends">
    <str name="fq">searchEnabled:true</str>
  </lst>
</requestHandler>

这将始终在后台向您的请求添加一个筛选查询,将结果集限制为 searchEnabled 设置为 true 的那些文档。