看最近吐槽wecenter搜索功能的不少,我也来“吐槽”一下。
估计吐槽的人都是遇到了搜索一些词条,明明有对应的条目,在搜索结果里面却没有。
在这里有个前提:wecenter目前只针对user_name,topic_title,question_title,article_title进行了搜索。
如果你搜索的内容不属于以上部分,自然不会得到相应的result;另一方面,即使属于以上部分,也不一定100%得到理想的搜索结果,为什么呢?
因为,wecenter对user_name,topic_title进行模糊查询,使用"keywords%"进行模糊查询;而对question_title,article_title的搜索不是直接对两个字段进行模糊查询,而是对两个字段使用PHPAnalysis分词以后的question_content_fulltext和title_fulltext两个字段进行Mysql全文搜索match against,此时相信大家已经清楚,影响对问题文章标题搜索结果的是phpanalysis的analysis_keyword。对于中文分词来说,现在比较流行的只有两个,wecenter使用的是其中一个。毕竟通过计算机程序对中文进行分析 解析截断一句话含有哪些关键字确率达到90%以上,毕竟还要考虑效率,就目前通用技术已很不错了。
我认为解决的思路有以下几条:
1. 借助百度站内搜索,这个也有不少使用前提的,比如:站点内容被百度收录,内容公开等。
2. 更换wecenter自带的中文分词系统,如果你发现更好的分词系统欢迎推荐。
3. 修改phpanalysis的字典也可以达到效果,但是很麻烦,相应的文档很少。
4. 控制question_content_fulltext和title_fulltext两个字段,可以手动修改两个字段的内容达到效果。
以上四点,个人认为第四点最容易达到效果。
我之前用过一个网站的发布功能,可以设置搜索关键词。wecenter也可以这么做,在publish页面添加一个搜索关键词的输入框。
好处是可以搜到对应内容,坏处发布者可以随便填写关键词。
我之前用过一个discuz的论坛,感觉其搜索功能很不错,不知道怎么实现的有空看看。
就写到这里了,有什么错误欢迎指正。
阅读全文
收起全文