2012-02-22 47 views
3

在構建搜索查詢和執行搜索時,在建立索引時將字段應用於字段而不是執行此操作的好處是什麼?例如,在將文檔添加到索引時,我可以對「標題」字段應用提升,或者在使用類似(title:test)^10的查詢執行搜索時指定提升。兩者似乎都能達到同樣的目的,我想知道是否有任何理由或利益以一種方式而不是另一種方式進行。在索引時間而不是查詢時間在Solr中應用字段提升的好處?

回答

7

this的差異(從Lucene的常見問題,但適用於Solr的也)

指數時間域提升是表達的東西一樣的方式「這個文件的標題是價值高達稱號兩倍大部分文件「。查詢時間提升是表達「我關心查詢的這個子句中的匹配的兩倍,就像我對查詢的其他子句中的匹配所做的那樣」。

如果您在每個文檔上設置索引時間字段提升值,它們都毫無價值。

索引時間提升需要norms,這也將啓用字段長度標準化。根據你的使用情況,這可能是一個'消極'或'不關心'你。

索引時間提升略快,但我認爲差異可以忽略不計,查詢時間提升幾乎總是一個更好的選擇,因爲它們提供了靈活性(如果要更改索引時間,則無需重新索引)權重)。