您的位置:首页 > 编程语言 > PHP开发

PHPCMS 2008重新生成搜索索引

2012-07-03 10:25 225 查看
我实在想不出来为什么PHPCMS的搜索模块不提供一个按钮来刷新所有搜索结果并更新所有搜索的索引数据.

如果你提供缓存机制, 那么就必须要提供一个强制缓存的方法, 而PHPCMS的搜索提供了两层缓存, 一是 phpcms_search 这个表来提供索引缓存, 然后在数据库缓存的基础上又提供了文件缓存机制, search/data/ 文件夹下的都是文件缓存, 但是后台管理里面居然一个清空缓存的选项都没有, 必须手动去清除.

我是真不知道这样设计是怎么想的, 如果URL规则变了, 同样的文章名出现, 文章被删除了, 此搜索都会出问题, 搜索出来的全部都是旧结果, 不存在的文章, 而你想刷新缓存? 没门.

查到的资料, 手动清空刷新搜索缓存的办法是.

步骤:

    清空文件缓存 : /search/data/ 下的所有文件和文件夹.

    清空数据库数据 : 执行SQL命令 truncate phpcms_search .

    将所有文章都标记为未索引 : 执行 update phpcms_content set searchid='0' , 很明显它给每篇文章设置了索引值, 只有在该ID为0时, 下次才会对这篇文章重新生成索引ID.

    重新生成索引 : 这里可以用 [生成HTML]-[更新URL] 的操作达到这个目的, 它在更新URL的时候会去读刚才设置的 searchid . 而且即使你没有使用HTML缓存机制这个操作也是一样可以帮你重新生成索引的.

关于为什么一件很简单的事情会变得这么麻烦, 我就不吐槽了, 最后说下我用的PHPCMS版本是 2008 sp4 .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  search 数据库 url html sql