我正在使用Apache Solr进行索引和搜索。我必须对特定字段赋予权重,以便如果我进行搜索,则搜索必须在该字段上执行,该字段最重要,然后在其他字段上执行。
我正在使用SolrJ,Java和GWT进行开发。
答案 0 :(得分:3)
要在索引时提升,您需要在更新文档中提供一个提升语句。
<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>
上面的示例演示了如何提升完整文档(提升)以及如何提升特定字段。
答案 1 :(得分:1)
使用dismax(或edismax)查询处理程序,您可以设置qf(查询字段)参数以将提升分配给不同的字段。它使用以下格式:
field1 ^ boost_val field2 ^ boost_val .... etc。
还有其他好的参数可以帮助您控制结果排名。