【问题标题】:Multiple Boost Queries in SolrSolr 中的多个 Boost 查询
【发布时间】:2013-11-26 12:55:02
【问题描述】:

我需要有多个 bq 进行查询。这是请求处理程序的配置。

<requestHandler name="/search" class="solr.StandardRequestHandler">
<lst name="defaults">
    <str name="indent">false</str>
    <str name="q">
    _query_:"{!edismax qf=$qfQuery mm=$mmQuery pf=$pfQuery bq=$boostQuery bq=$bQuery v=$mainQuery}"
    </str>
    <str name="qfQuery">Title^10.0 Detail CategoryTrail^4.0</str>
    <str name="mmQuery">1</str>
    <str name="pfQuery">Title Detail</str>
    <str name="boostQuery">
    _query_:"{!edismax qf=$boostQueryQf mm=100% v=$mainQuery}"^100</str>
    <str name="boostQueryQf">Title Detail</str>
    <str name="bQuery">_query_:"{!edismax qf=$bQueryQf v=$mainQuery}"</str>
    <str name="bQueryQf">CatTrail:Laptops/*^50.0 recip(ms(NOW,DateAdded),3.16e-11,1,1)^4.0 Availability:True^4.0 !ReviewCount:0^2.0</str>
</lst>
</requestHandler>

遗憾的是,bq 都不会影响结果。我无法在 debugQuery 输出中看到任何 boost_queries

我还尝试按照web 的建议在boostQuerybQuery 中放置一个空白bq。但这也没有用。任何人都可以修复此处理程序或为我提供所需结果的替代方法吗?
提前致谢。

【问题讨论】:

  • 澄清一下——你能在 debugQuery 输出中看到parsedquery 中的那些查询,至少部分应用了吗?它们可能已经处于经过处理的形式,所以不要在那里寻找完全匹配。
  • @rchukh 不,甚至不是部分。这是 parsedquery (+DisjunctionMaxQuery((((CategoryTrail:battery CategoryTrail:batteries)^4.0) | (Detail:battery Detail:batteries) | ((Title:battery Title:batteries)^10.0))) () () ((+())/no_coord))/no_coord 的输出

标签: solr edismax


【解决方案1】:

从头开始重新设计处理程序。以下是我实现预期结果的方法:

<requestHandler name="/search" class="solr.SearchHandler">
<lst name="defaults">
    <str name="indent">false</str>      
    <str name="echoParams">explicit</str>
    <str name="defType">edismax</str>
    <str name="qf">
        Title^10.0 Detail CategoryTrail^4.0 
    </str>
    <str name="mm">1</str>
    <str name="pf">Title^8.0 Detail</str>
    <str name="bq">_val_:"{!edismax qf=$boostQueryQf mm=100% v=$q bq=}"^100</str>
    <str name="boostQueryQf">Title^10.0 Detail</str>
    <str name="bq">CatTrail:Laptops/*^50.0</str>
    <str name="bq">ReviewCount:[1 TO *]^4.0</str>
    <str name="bf">recip(ms(NOW,DateAdded),3.16e-11,1,1)^4.0</str>
    <int name="rows">10</int>
    <str name="df">allText</str>
</lst>
</requestHandler>

我认为我的要求并不太具体。这是电子商务搜索的一般要求,他们希望通过精确的搜索关键字、一些特定类别、带有评论的产品和更新的结果来提升记录。我会推荐我通过大量研究和 Hit & trial 实现的上述方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2017-03-22
    相关资源
    最近更新 更多