我正在使用 Apache Solr 进行索引和搜索。我必须对特定字段赋予权重,以便如果我进行搜索,那么搜索必须在权重最高的字段上执行,然后在其他字段上执行。
我正在使用 SolrJ、Java 和 GWT 进行开发。
要在索引时提升,您需要在更新文档中提供提升语句。
<add overwrite="true">
<doc boost="2.0">
<field name="id">1234</field>
<field name="type">type1</type>
</doc>
<doc>
<field name="id">2345</field>
<field name="type" boost="0.5">type2</type>
</doc>
</add>
上面的示例演示了如何提升完整文档(海拔)以及如何提升特定字段。
使用 dismax(或 edismax)查询处理程序,您可以设置 qf(查询字段)参数以将提升分配给不同的字段。它使用这种格式:
field1^boost_val field2^boost_val....等。
还有其他很好的参数可以帮助您控制结果排名。