【问题标题】:SOLR: how to exclude fields globally?SOLR:如何全局排除字段?
【发布时间】:2020-11-24 17:13:15
【问题描述】:

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

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

这样任何 solr 搜索都不会返回字段值设置为 false 的文档/页面。

【问题讨论】:

    标签: search solr lucene solrcloud solr-search


    【解决方案1】:

    您可以为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 的文档。

    【讨论】:

    • 非常感谢@matslindh!!。有用!!这正是我要找的!
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2014-01-05
    • 2017-10-15
    • 2011-05-27
    相关资源
    最近更新 更多