3

我正在使用 Apache Solr 进行索引和搜索。我必须对特定字段赋予权重,以便如果我进行搜索,那么搜索必须在权重最高的字段上执行,然后在其他字段上执行。

我正在使用 SolrJ、Java 和 GWT 进行开发。

4

2 回答 2

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>

上面的示例演示了如何提升完整文档(海拔)以及如何提升特定字段。

有关更多文档,请查看此处此处

于 2012-08-06T22:20:19.497 回答
1

使用 dismax(或 edismax)查询处理程序,您可以设置 qf(查询字段)参数以将提升分配给不同的字段。它使用这种格式:

field1^boost_val field2^boost_val....等。

还有其他很好的参数可以帮助您控制结果排名。

http://wiki.apache.org/solr/ExtendedDisMax

于 2012-08-06T14:49:39.730 回答