2009-10-07 65 views
7

我知道它需要一個浮點數,但是在結果中的各種提升水平的典型值是多少?Lucene/Lucene.NET - Document.SetBoost()值?

例如:

如果我想10%,以提高文檔的權重,然後我應該設置1.1嗎? 對於20%,然後1.2?

如果我開始將提升設置爲75.0這樣的值會發生什麼?或500.0?

編輯:固定格式

回答

6

請參閱Lucene Similarity Documentation的公式。原則上,所有其他因素是相同的,將文檔的提升量設置爲1.1,確實會使其得分提高10%,而相同文檔的提高爲1.0。如果您有一組文檔在搜索時應該是內在的首選,這可能是一個好主意。請注意,文檔提升是一種索引時間屬性,使得無需重新索引即可更改文檔的提升。 評分還有其他重要因素 - 包括術語比賽分數,規範等。 有關詳細信息,請參閱Debugging Relevance Issues in Search

+1

但請注意,文檔和字段最終以單個字節編碼,並帶有一個3位尾數 - 因此小於25%的任何差異可能最終完全不被注意。 – jsalvata 2012-04-05 09:50:40

2

增加了尤瓦爾所說的。此值是文件增強的字段提升功能。提升值以單個字節編碼。因此,在存儲此值時可能會丟失精度。使用Searcher.Explain()進行調試將幫助您獲得適量的提升。

如果您希望保留增強值(例如,當您想從當前索引重新創建索引時它很有用),則可以將其添加到存儲字段中。

2

需要記住的重要事情不是孤立地處理它,您需要將其視爲全球策略的一部分,制定用於影響相關性的每個標準的列表,然後對這些標準進行排序。定義每個標準之間的關係。您是否經常重新編制索引,或者只是添加新文檔,如果您經常重新編制索引,則可以調整文檔提升標準,如果不是,則需要事先仔細考慮。