这是我执行搜索的代码
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
它工作正常。并给出14个结果。 其中一个是
Great Sandy Straits两夜自然邂逅两人日落游船之旅更多。最高减$ 1,071!
但是当我搜索“with”或“more”时,它变成
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
并且没有给出任何结果,尽管两者都是他们的。我不是这类搜索查询的专家。
但是
当我用“游览”搜索时,这也是他们的工作正常。他们正在进行。 无法理解为“旅行”,“有”和“更多”都包含四个字母以及它们的标题。
你们是天才......
你建议如何锻炼。
提前致谢。
答案 0 :(得分:0)
在布尔全文搜索中,禁用词列表适用,常用词语如“some”或“then”...是停用词,如果搜索字符串中存在则不匹配: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