2010-04-13 121 views
0

這可能與我對全文搜索的理解有關,也可能是一個已知問題。我的Java代碼創建MySQL的全文搜索這樣的搜索詞 -MySQL全文查詢的奇怪問題

+詞*

此工作正常,如果在數據庫列值包含這個詞本身更多的文本。但是,如果值是確切的 - 不會返回任何結果。我期望它在價值完全匹配時返回結果。讓我舉一個例子 - 假設DB與價值「馬尼什」列名,現在如果我用這個搜索 - +馬尼斯*

它確實返回正確的結果,但如果我嘗試這一點 - +馬尼什* 它不返回任何結果,但在數據庫列 - 名稱中存在完全匹配。如何在這兩種情況下獲得所需的行爲?刪除+符號的作品,但是當有兩個或更多單詞時,它會返回太多結果。

任何幫助,指針將不勝感激!我使用的MySQL 5.0

TIA, - 馬尼什

+0

它應該按照您所做的方式工作,只要您不搜索停用詞或短於ft_min_word_len的單詞。確保你在布爾模式下運行查詢。 ft_min_word_len的設置是什麼? – 2010-04-13 19:07:32

+0

ft_min_word_len設置爲3.這不是問題,其餘的事情也很好。正如我在帖子中提到的那樣,刪除「+」是有效的,但這意味着「OR」條件,並且當我給出2個或更多的搜索詞時 - 最終會給出比我想要的結果多得多的結果「和」。 – Manish 2010-04-14 06:40:57

回答

1

嘗試刪除的人,但不馬尼什
人*搜索人與馬尼什的+
+曼搜索​​。

+1

刪除+會爲多個單詞提供許多結果,因爲它暗示着「OR」條件。 – Manish 2010-04-14 06:41:57