PHPCMS无法搜索文章内容中的关键字解决

最近工作上维护公司的网站,其后台用的是PHPCMS V9,以前曾用过PHPCMS2008,用这个还算能够快速上手.不过使用过程中也有很多问题,比如这个最近网站遇到的搜索功能的问题,经常搜不到文章,除非是标题或者关键字有相同的,而文章内容部分是搜索不到的,编辑需要找相关文章来进行SEO优化也不是很方便,于是我便研究了一下PHPCMS自带的搜索功能,首先要说的是后台可以对搜索进行设置和调整的区域主要包括

  1. 模块 > 模块管理 > 全站搜索 > 模块管理 > 全站搜索
  2. 内容 > 内容相关设置 > 模型管理 > 文章模型字段管理

第一个很简单,直接查看模块配置,如果没有选中全站搜索的果断选中,这样可以避免一些搜索不到信息的情况,后面两个我也选中是了,至于选不选,看个人需要了.提交之后建议重建索引,这里需要提到的是,有时候重建索引出错,出错内容大致是这样的

MySQL Query : DELETE FROM 'phpcmsv9'.'v9_search' WHERE 'siteid' = '1'
MySQL Error : Incorrect key file for table '.\phpcmsv9\v9_search.MYI'; try to repair it
MySQL Errno : 126
Message : Incorrect key file for table '.\phpcmsv9\v9_search.MYI'; try to repair it
Need Help?

这个解决办法也十分简单,同样在后台找到 扩展 > 扩展 > 数据库工具 > 请选择数据链接池处选择数据库后,会展现出该数据库的结构,找到v9_searchv9_search_keyword表,后面有修复,点击修复,然后重新回到重建索引处,就不会出错了.

另一方面如果有些关键字是你需要在搜索结果中显示的,比如作者,内容等等,先说如何搜索到作者吧,找到 内容 > 内容相关设置 > 模型管理 > 进入文章模型字段管理,找到作者字段,点击修改,在下面单选选项处可以看到作为搜索条件,此选项,选择即可.

同样的,内容字段也是这个方法,不过有个问题,内容字段的作为搜索条件处是灰色不可更改,这要怎么办是好?这种情况下,如有需要,那就要强行修改数据库内的值了,以内容字段为例,打开数据库,这里我用的phpmyadmin,找到相应数据库的表v9_model_field,找到其中name内容(fieldcontent)的地方,点击编辑,其中有个字段叫做issearch,当前值为0,于是我们将它修改为1即可.再次返回后台,会发现作为搜索条件已经是了.

此时,你可以尝试搜索一些关键字,会发现问题得到解决,如果你还有什么问题,可以发电子邮件给我,我会抽时间与你一起讨论.

好了暂时写到这里,谢谢大家的关注.如果想了解sphinx全文索引可以看一个PHPCMS官方论坛的帖子,写的不错,点击进入phpcms中应用sphinx全文索引

作者: whidy

不可忘记初衷,不可迷失方向,所有一切都为梦想... http://www.whidy.net/about (updated 2014-5)

《PHPCMS无法搜索文章内容中的关键字解决》有5个想法

  1. 想问一下这个搜索功能怎么做 是自己写sql语句好呢 还是直接用phpcms自带的搜索功能??

    1. 其实这篇文章很老了,我最近没有测试过新的phpcms,我觉得这方面应该改进了,如果网站服务器压力不大,可试着直接写sql,但是建议用自带功能,

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据