2012-08-06 54 views
3

我使用Apache Solr進行索引和搜索。我必須重視特定的領域,以便如果我進行搜索,搜索必須在該權重最大的域上執行,然後在其他域上執行。 我正在使用SolrJ/java/GWT進行開發。如何重視Solr索引中的特定領域?

給我一些想法,如果有人知道...提前

謝謝...

回答

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

使用dismax(或edismax)查詢處理程序,您可以設置QF(查詢字段)參數分配提升到不同的領域。它使用這種格式:

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

還有其他一些很好的參數可以幫助您控制結果排名。

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

+0

這不回答關於在索引時間提高的問題。您在查詢時正在描述一個提升。 – harmstyler 2012-08-06 22:09:58

+0

如果我想在索引時間提升,那麼我必須在文檔中添加字段時給予提升值,不是嗎? 如果是,那麼我不需要在查詢時間給「字段^ 2」......這是正確的嗎? – 2012-08-07 05:45:32