2013-01-11 57 views
0

這是我的代碼來執行搜索Mysql的選擇查詢與匹配,並針對問題

SELECT d.deal_id, 
    d.deal_title, 
    d.friendly_url 
    FROM wp_deals AS d 
    WHERE MATCH (d.deal_title) AGAINST ('Historic China eight day tour' IN BOOLEAN MODE) 
    GROUP BY d.deal_id 

它的工作原理fine.and給予14分的結果。 其中之一是

偉大的桑迪海峽兩晚自然邂逅遊兩日落日遊&更多。高達$ 1,071折扣!

但是,當我搜索「與」或「多」變成

SELECT d.deal_id, 
    d.deal_title, 
    d.friendly_url 
FROM wp_deals AS d 
WHERE MATCH (d.deal_title) AGAINST ('more' IN BOOLEAN MODE) 
GROUP BY d.deal_id 


SELECT d.deal_id, 
    d.deal_title, 
    d.friendly_url 
    FROM wp_deals AS d 
    WHERE MATCH (d.deal_title) AGAINST ('with' IN BOOLEAN MODE) 
    GROUP BY d.deal_id 

,並沒有給出任何結果雖然與多都是自己的。我不是這種類型的搜索查詢的專家。

當我與「旅遊」,這也是他們的搜索它的工作原理fine.whats去他們的。 不能理解爲「旅遊」,「有」和「更多」都包含四個字母,也標題。

你們人是天才..

你的建議,所以它會鍛鍊。

在此先感謝。

回答

0

在布爾全文搜索的停止字適用,如「一些」或「然後」 ......常用詞是停用詞並不相符,如果出現在搜索字符串:http://dev.mysql.com/doc/refman/5.5/en//fulltext-boolean.html

停止字: http://dev.mysql.com/doc/refman/5.0/en/fulltext-stopwords.html

最知名的解決方案是禁用列表,或添加/從中刪除值:How to reset stop words in MYSQL?

另外:

SELECT d.deal_id, 
    d.deal_title, 
    d.friendly_url 
FROM 
    wp_deals AS d 
WHERE MATCH (d.deal_title) AGAINST ('+more*' IN BOOLEAN MODE) 
GROUP BY d.deal_id 
+0

good.thanks man ... –