【发布时间】: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 的建议在boostQuery 和bQuery 中放置一个空白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的输出