我需要为查询提供多个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的建议在boostQuery
和bQuery
中添加空白bq。但这也不起作用。任何人都可以修复此处理程序或为我提供所需结果的替代方法吗?
提前谢谢。
答案 0 :(得分:10)
从头开始重新处理处理程序。以下是我取得预期成果的方法:
<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&amp; amp;试验