最近有客户要求让帝国cms的搜索功能搜索文章内容,默认情况下是只搜索文章标题的。
稍微研究了一下,发现如果需要让文章正文能被搜索,其实也很简单。
- 新闻正文字段newstext ,默认是存放在副表中,需要转成主表,点击副表按钮,会转成主表。如下图:
2、新闻内容字段newstext转成主表后,去管理系统模型中,给新闻正文勾选搜索项,如下图:
3、修改模板中搜索框的代码参数
在搜索代码中,name=”show” 的value值默认只有title,我们可以现在可以添加上newstext了,如下图,注意里面的逗号是英文逗号。
这样在前台页面搜索框中,就可以搜索出新闻正文的内容了。
注意事项:
1、虽然可以用上面的方法,搜索文章内容,但这种方法会消耗很多服务器资源,如果你文章数量太多,那么搜索一次网站会很卡。并且内容字段newstext是保存在主表中的,文章多了会导致主表体积太大,网站所有功能都变慢。
所以一般不要把内容字段newstext改为主表,也尽量不要搜索正文。
2、说到正文字段大小,其实帝国cms的文章系统表中,默认新闻正文字段就是存在主表。如下图:
但这个新闻正文字段中,只是保存了一个地址,而真正的文章内容,是以附件的形式存在服务器上,而不是存在数据库中。
所以,就算把文章系统模型的newstext字段设置搜索项,因为内容不在数据库,所以也是不能搜索文章内容的。