您的位置: 首页 / Experiences, PHP / 注意:MySQL 全文检索不支持多字节

注意:MySQL 全文检索不支持多字节

Published at Sep 6, 6pm / Keywords: ,

WordPress 的搜索用的是简单的匹配,不支持分词之类的特性。MySQL 4 之后增加了全文检索功能,通过使用全文检索,可以是搜索结果更加精确,而且结果也可以按照相关度排序,速度也快,非常方便。

基于上面的想法,今天花了一天的时间开发了一个 WordPress 全文搜索的插件,准备先用在这里和 Moneybeta 上,完善后再发布出来。基本上完成 80% 后测试,奇怪,就是搜索不到结果。我下意识的随便敲了几个英文单词,竟然有结果了,难道是 MySQL 不支持多字节字符的全文搜索?

Google,最终肯定了我的判断。没想到强大的 MySQL 竟然又把我们这些古老文明给遗忘了。最郁闷的是,我今天这一天算是白忙活了。TNND。

得出两个结论,也可以说是教训:第一,中文网站就不要用 MySQL 的全文搜索功能了,如果你也有打算这么做的话,赶快将你的想法消灭在萌芽里;第二,以后想做什么东西之前先 Google,免得做无用功。

收藏和分享本文 17fav 收藏本文

发表您的观点或推荐本文 Loading...

5 Responses

  1. Sep 6, 7pm / LINK / REPLY
    Gravatar

    正想做这件事呢。看来不用做了。

  2. Sep 6, 8pm / LINK / REPLY
    Gravatar

    mysql全文检索一直就不支持多字节字符集的… 而且我觉着其实如果支持的话 大概现在已经有人写出可用的插件了呢.
    因为牵扯中文分词问题 如果想支持也是挺困难的事 英文的话 分词只要按规定的停止符就可以了.
    前几天使劲翻mysql的官方手册 蛮好的 当时也顺便试了试全文检索

  3. Sep 6, 9pm / LINK / REPLY
    Gravatar

    to BunnyQ: 有道理呀,刚找了一下,好像有一个第三方出的支持中文全文搜索的 MySQL,据说不太稳定,不敢用也不想用

  4. Sep 13, 10am / LINK / REPLY
    Gravatar

    需要替换mysql中的简单的单字符分词部分,换成一个比较好的中文分词模块,还要保证稳定性。这个一般的人力想做圆满还是挺难的。

  5. Sep 16, 1pm / LINK / REPLY
    Gravatar

    嗯,是不支持。这个事也麻烦呀,中文的分词,Google和百度都没完全处理好呢。

    其实匹配搜索也不错呀,大不了搜索时自己在两个词中间加空格吗。我用的K2模版的搜索功能就做的不错。

Now, It's your Turn!

BACK TO Article / Comments