【问题标题】:Solr filter query cache and autowarmingSolr 过滤器查询缓存和自动预热
【发布时间】:2013-03-14 11:26:24
【问题描述】:

对于 solr 自动预热,有没有办法自动预热之前执行的过滤器查询?

【问题讨论】:

    标签: solr


    【解决方案1】:

    是的。创建 firstSearcher 和 newSearcher 事件侦听器,如 Solr wiki 上所述:http://wiki.apache.org/solr/SolrCaching#newSearcher_and_firstSearcher_Event_Listeners

    在你的 solrconfig.xml 中看起来像这样

    <listener event="firstSearcher" class="solr.QuerySenderListener">
      <arr name="queries">
        <!-- seed common sort fields -->
        <lst> <str name="q">anything</str> <str name="sort">name desc, price desc, populartiy desc</str> </lst>
        <!-- seed common facets and filter queries -->
        <lst> <str name="q">anything</str>
              <str name="facet.field">category</str>
              <str name="fq">inStock:true</str>
              <str name="fq">price:[0 TO 100]</str>
        </lst>
      </arr>
    </listener>
    

    【讨论】:

    • 不是我要找的。基本上我正在寻找的是动态自动升温。在您提供的示例配置中是静态的。我需要自动预热 solr 服务器收到的最后一个真实过滤器查询。
    • 我对 autowarming 的理解是,这正是 autowarming 的作用,它将查询缓存从垂死的搜索者迁移到新的搜索者。
    • 感谢您指出。所以我的问题的正确答案是在 solrconfig.xml 中将 autowarmCount 设置为非零值。您能否更改您的答案以便我接受?
    • @AndyLester:感谢您的发帖,但是有什么方法可以为具有 1000 个可能值的类别字段预热过滤器查询。我需要在 solrconig.xml 中手动写 1000 行还是格式是什么?
    • 是的,这就是你必须做的。也就是说,尝试分析用户的搜索历史(假设您将用户查询转储到日志中)并查看某些类别是否比其他类别获得更多使用。我在工作中编写了一个程序来执行此操作,发现在一个月的实际流量中进入查询的数千个 FQ 中,有 14 个 FQ 负责第 99 个百分位数。这 14 个 FQ 就是暖箱里的东西。
    猜你喜欢
    • 2013-11-11
    • 2014-12-23
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2013-12-27
    • 2013-05-20
    相关资源
    最近更新 更多