一些国外开源程序不支持中文搜索的原因
By
lincanbin
at 2015-07-07 • 1人收藏 • 1754人看过
从这里看到了这个帖子,就顺手写一下。
英文的语法跟中文的不同,它是按空格划分的。
例如我到一个黄网,想搜美腿看看,我输入leg,结果找出来一个legal teen,这肯定不对吧?所以英文网站的搜索都是基于空格&符号分词进行的。
中文就相对简单得多,FullText或者Like(前者性能高但是中文支持不佳,后者性能较菜),或者分词然后取索引(这是最好的方案,但是对分词和索引能力要求较高,知乎水平不够但是强上这种)。
不同语言有不同的搜索实现,怎么可能一并实现?
如果Google没被墙,最好的方案其实还是放个Google的站内搜索。
1 个回复 | 最后更新于 2015-07-07
登录后方可回帖
Carbon Forum这个搜索功能其实是没什么诚意的。
https://github.com/lincanbin/Carbon-Forum/blob/master/search.php#L32
大家可以看到它的搜索功能的后台实现只有五十多行,这段代码估计写了一个下午最多了。
在低数量级的时候直接like匹配,数量级一高,则分词后然后取索引。
这些索引实际上还是在发帖时人工输入的,所以精确度还可以。
用户输入文章后,Carbon Forum利用RMM算法自动切分文章,从词库中筛选可能的词组,并给出这些词组,让用户选择合适的关键词作为标签。
用户人工选择的这些标签同时也就是该主题在高数量级下的索引了。