2015-10-16 138 views
2

如果我搜索的術語'將走',那麼結果將顯示所有與搜索項相似的條目。 例如:MYSQL FULLTEXT搜索無法正常工作

 
Search Term: will walk 
Records: 
1. It will walk. 
2. tomorrow rain will walk. 
3. it should walk 
4. walk on 
5. tomorrow bus will walk. 
Result: 1, 2, 5 

我會嘗試與查詢SELECT * FROM user WHERE MATCH(name) AGAINST('+will +walk' IN BOOLEAN MODE);但我得到的所有條目(1,2,3,4,5)的結果。

+0

它工作正常,因爲[**'will'** is stopword](https://dev.mysql.com/doc/refman/5.6/en/fulltext-stopwords.html),並在[boolean全文搜索](https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html)。 – Rimas

+0

@Rimas,是的,你是對的。它的工作正常。謝謝 :) 。 – user2349080

回答

0

全文搜索添加%作爲分隔符爲每一個字。您的查詢應該是這樣的:

SELECT * FROM user WHERE name LIKE '%will%walk%' 

這將返回在name列的話步行所有記錄。即使是will be walk

+0

我已經使用過這樣的查詢:'SELECT * FROM test WHERE MATCH(name)AGAINST('BOOLEAN MODE'中的'%will%walk%');'。但它會返回所有記錄(在問題中提到)。 – user2349080

+0

@ user2349080我誤解了你的問題。你想返回所有記錄還是隻有1,2,5? – RubahMalam

+0

正確答案是1,2,5。 – user2349080