2012-03-04 45 views
0

我已经设置了一个全文搜索来监听MySQL中我的博客文章表格的标题和描述列。我用它来搜索该表的SQL如下:奇异单词和MySQL问题全文搜索

SELECT标题,描述,出版日期FROM表WHERE MATCH(标题,描述)AGAINST( '猫', '狗')ORDER BY出版日期DESC LIMIT 100

这是有效的('狗'和'猫'),但是当我使用单数('狗'或'猫')时,我发现没有结果。不知道为什么这会发生,我尝试过不同的变化,如“+狗,+猫”,并尝试包括在布尔模式...以及没有任何作品。是的,我确信说明栏中还有其他词是“狗”和“猫”以及它们的复数版本。

我怎样才能得到与MySQL一起使用的单数词?

回答

2

全文搜索的default minimum word length是4个字符。

您需要在服务器配置中更改它。有关如何操作的一些信息,请参阅h ere

+0

大propertly工作!无论如何要避免SQL查询或索引的CREATE语法中的最小长度问题?我无法访问my.conf文件,也无法访问我的主机的全局查询配置设置权限。 – matsko 2012-03-04 18:46:20

+0

@matsko我想看看通过http://stackoverflow.com/search?q=workaround+ft_min_word_len任何变通办法是否存在(但恐怕它看起来并不像他们这样做) – 2012-03-04 18:50:42

0

你为什么不尝试这样的事:

SELECT title,description,publish_date, MATCH(title,description) AGAINST('search') AS score FROM table WHERE MATCH(title,description) AGAINST('seacrh') ORDER BY score LIMIT 100; 

也许这将帮助,但并非用一个字

+0

请问这个地址的最小字长问题?我不明白。 – 2012-03-04 19:14:09

+0

这里的事情是,你要介绍的“搜索”全文,你要搜索exmpel“猫狗”不是“cat''dog”和查询将搜索所有关于您在此创建的全文索引的话关于标题和描述的案例以及按相关性排序的结果。但是,我从来没有评估过性能,只要我在小数据库中使用这个数量少于10,000行 – 2012-03-04 19:36:56