2012-03-13 35 views

回答

0

基於LCS算法,與其他匹配相比,完整查詢字符串的精確匹配應自動排名更高。我認爲這應該是默認行爲。有助力的概念和所有在索爾然而我不認爲這將需要在這種情況下。

+0

謝謝,我知道這件事。但是我們有一些特殊情況的問題。如果我們正在尋找完整的詞組,它應該是最高的,但在某些情況下,結果並不是最重要的。不知道爲什麼?你能幫助我嗎? – 2012-03-13 12:02:25

+0

LCS不能保證精確的短語排名更高。 – Andre85 2016-07-20 08:57:35

+0

通過精確的短語,我明白朮語匹配和連續的位置匹配。 我不確定在Lucene中是否使用LCS,但如果使用LCS,它不能確保連續位置期匹配的更高等級,因爲tf-idf用於評分。 如果您想要這種行爲,您需要使用Lucene/Solr短語查詢,它將位置信息納入考慮範圍,並增加與此類查詢匹配的文檔的得分。 – Andre85 2016-07-20 09:26:55

1

你可以做的是用確切的短語向你的查詢中添加一個或,然後增加這個短語。例如,您的查詢可能是:

?q=(foo OR bar OR "foo bar"^10) 

與「富」或「 - 」結果仍然會發現,但確切的短語會因此而提高。

以下頁面有關於這一些有用的信息,包括如何使用比標準解析器其他查詢分析器: http://solr.pl/en/2010/07/14/solr-and-phrasequery-phrase-bonus-in-query-stage/

希望這有助於。

2

當且僅當你使用dismax,比你可以設置PF(短語字段)參數。它具有相同的語法QF參數:字段名^提振

例如:

fieldOne^2.3 fieldTwo fieldThree^0.4 

這將提高詞組上使用指定的提升指定字段匹配。 沒有提升值(如在fieldTwo中)將使用1.0的默認提升。 如果您使用pf,您還應該看看ps(短語slop)參數,該參數指定兩個單詞可以有多遠,以便它們仍可算作「短語」。

無論如何,這個鏈接DisMaxQParserPlugin應該幫助