本站的站内搜索用的是mysql的全文检索,一直不支持中文,查找原因,分析原因如下:
MySQL的全文检索功能是基于分词技术的。对于西方语言,由于单词与单词之间有空格作为分隔,因此分词方法可以很trivial的实现。而对于中文等东亚语言,词与词之间并没有空格作为天然的分界,因此MySQL的全文索引功能完全不能正常工作。关于这个问题,可以参见MySQL的官方bug声明。
正因为这个问题,诸如Serendipity、Nucleus等许多著名Blog程序采用MATCH语句实现的全文搜索功能对于中文内容的Blog,除了一些英文单词能搜索到之外,几乎完全没有作用。反观国内的Blog程序,为了避开这种问题,主要有两种解决办法:一是借用Google或百度等著名搜索引擎的站内搜索功能实现全文检索。这样做的好处是不消耗系统资源,缺点是更新不够及时。新增的文章往往要过几天才能在搜索引擎上看到。二是采用LIKE命令进行搜索。但是与MATCH语句相比,LIKE语句的效率是极为低下的,用它进行全文检索将消耗很大的资源(基本上来讲正是因为这样才有了MATCH语句)。
由于中文所独有的特点,要很好的进行中文全文索引必须首先能够智能地对中文句子进行分词。而中文分词一直是一个人工智能中的一个难题。所以可以说直到如今,MySQL的中文全文检索功能仍没有很好的解决。




PHP问题集锦





此内容无附件