【发布时间】:2011-09-15 14:05:12
【问题描述】:
我正在使用 solr 按名称搜索一组数据(例如“Dan”或“Joe Smith”)。我想按照另一个索引字段 double_score(例如 10.0 或 72.3)指定的顺序返回查询指定的结果(编辑:末尾带有通配符)。我目前有以下根本无法工作:
<!-- Note that the default search is on the field name -->
<requestHandler name="/scoresearch" class="solr.SearchHandler" default="true">
<!-- <lst name="invariants">
<str name="q">{!boost b=sum(double_score) defType=dismax v=$qq}</str>
</lst> -->
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<!-- <str name="qq"></str> -->
<str name="qf">double_score</str>
<str name="debug">true</str>
<str name="q.alt">*:*</str>
</lst>
</requestHandler>
如果我删除了 cmets,那么搜索确实有效。我所做的任何查询都会被 q.alt 替换,然后被 double_score 的值提升。如果这没有取代 q.alt,这将是预期的效果。
另外请注意,虽然我还没有深入研究更有趣的可能性,例如标记名称,但我确实计划这样做。因此,任何可能的建议/解决方案都不应该排除这一点。
【问题讨论】:
-
为什么是qf
double_score?有“Dan”和“Joe Smith”的领域是什么? -
double_score 是我想要确定的顺序。其他两个的字段是“名称”(默认搜索字段)