如何赋予特定领域权重?

时间:2012-08-06 12:20:10

标签: java search indexing gwt solr

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

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

2 个答案:

答案 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>

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

有关更多文档,请查看herehere

答案 1 :(得分:1)

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

field1 ^ boost_val field2 ^ boost_val .... etc。

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

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