2012-09-15 94 views
0

我正在使用apache-solr-3.6.0在Windows機器上。我想搜索兩個單詞之間相隔一定數量的單詞(不超過此數字)。 例如: 請考慮以下短語,我想要搜索Daisy &考試,但不得超過2個單詞。Solr - 使用精確數量的詞分開的接近搜索

Daisy has exam. 
Daisy has an exam. 
Daisy has a math exam. 
Daisy has a difficult math exam. 

我搜索了這樣的事情,我嘗試了Term Proximity。

http://localhost:8983/solr/select/?q="Daisy exam"~2&version=2.2&start=0&rows=10&indent=on&debugQuery=true 

,我需要應了那句結果:Daisy has an exam.但使用上述標準,結果是最後3短語。

因此,任何想法使用確切數量的單詞分開?

回答

0

退房相關的問題在這裏: Solr proximity ordered vs unordered

當你說「的距離不超過2個字」,那麼你應該有第一和第二短語匹配。然後,您的查詢將是"Daisy exam"~1,這將與菊花檢查和它們之間的插入相匹配(這是一個更改:更改exam位置從2到3)。

爲了防止匹配結果中的「雛菊檢查」,您可以將-"Daisy exam"添加到您的查詢中。或者,您可以將fq=-"Daisy exam"添加到您的查詢字符串參數。

+0

感謝您的回覆,但我希望得到的結果是這樣的短語:'雛菊有一個考試.'和使用'〜1'不會達到那個結果。即使使用'〜2'也不會讓我得到確切的結果,就好像有一句話:'雛菊檢查.'它將被包括在內,而這不是我想要的。有任何想法嗎? – Daisy

+0

因爲'q〜x'匹配變化小於或等於x的文檔,所以我認爲這對於Solr來說是不可能的。順便說一句,如果解決了這個問題,你可以在'fq'中直接排除「雛菊檢查」。 – Mohsen