来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] PHPCMS2008内置的搜索功能除了支持标题搜索外,还支持全文模糊搜索,并且支持按照相关度排序,很多站长朋友们直接希望使用他来制作一个小型的搜索引擎。看似非常强大的搜索功能,...
PHPCMS2008内置的搜索功能除了支持标题搜索外,还支持全文模糊搜索,并且支持按照相关度排序,很多站长朋友们直接希望使用他来制作一个小型的搜索引擎。
看似非常强大的搜索功能,那么在实际使用中存在哪些具体的优点和不足呢? 优点: 全文模糊搜索,搜索词可以单个关键词,也可以是句子。当输入较长的关键词,会自动经过分词处理后到数据中模糊查询,不会出现像其他CMS那样非得完全匹配才能搜索到结果的情况; 结果按相关度排序。这点体验不错,能够把最相关的结果展示给搜索用户,大大提高站内搜索体验。对搜索有特殊要求的用户,基至可以利用之来打造强大的个性化搜索与相关搜索。 不足: 1.需要开启全文索引,而MYSQL全文索引的开启需要有服务器权限 Mysql 默认的最小索引长度是4。中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,需要在[mysqld]后面加入一行“ft_min_word_len=1”,然后重启Mysql,再登录网站后台(模块管理->全站搜索)重建全文索引,否则将无法使用全站搜索功能。而普通虚拟主机商一般不太愿意为个别用户需修改MYSQL配置,普通站长不方便使用。 2.搜索相关表phpcms_search频繁损坏 PHPCMS后台发布的每篇文章全文内容都会经过分词处理,将整篇文章切分成以空格隔开的一个个词组后存入搜索相关的表phpcms_search中,以方便作搜索处理,实现使用这个表经常性损坏,运气差的时候,一天损坏两三次。 3.内容删除后搜索结果中仍然存在 在后台全文搜索模块建立全文索引后,每篇文章会以标题、网址、摘要的形式按文章ID缓存成PHP数组文件,当后台文章删除后,PHPCMS并没有把这些缓存文件关联删除,结果导致,文章删除了,搜索结果中仍然可以搜索到。 下文中落叶以问答模块为例来说明如何借助PHPCMS的全文搜索功能制作相关问题。
一般的CMS中的相关文章都是通过关键词标签来实际相关文章推荐的,但很多时候发文章时如果没有关键词或者关键词是自动提取的,相关文章效果不会太好,尤其是像问答模块这样的用户创造内容的网站,需要实现相关文章,一般不好通过关键词来关联相关文章。 PHPCMS中开启全文索引后,每次发布文章时文章的内容都会被通过分词处理后记录到phpcms_search中,当用户在搜索框中输入关键词或者句子时,先经过PHPCMS分词处理后,再到phpcms_search中查询并作相关度计算,按照相关度返回查询结果。要利用他的搜索功能来制作相关搜索,我们需要实现的是传入关键词,并自动搜索,那对于没有关键词字段的模块,那么我们可以直接传入标题,让他经过PHPCMS分词处理获取关键词。 具体代码实现如下:
在PHPCMS问答模块内容页show.php中倒数第7行前添加如下代码: 相关问题
作者:落叶(t.qq.com/guohui) 网站: www.pmume.com |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com