discuzx文章进行全文检索的实现方法
复制代码代码如下:
public function fetch_all_by_sql($where, $order = '', $start = 0, $limit = 0, $count = 0, $alias = '') { $where = $where && !is_array($where) ? " WHERE $where" : ''; if(is_array($order)) { $order = ''; } if($count) { return DB::result_first('SELECT count(*) FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order)); } return DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order)); }
{
搜索
后添加
变为:
保存后,更新下discuz的缓存,搜文章里的内容试试,如果能搜到,OK,大功告成~
复制代码代码如下:
if($num==0){ list($srchtxt, $srchtxtsql) = searchkey($keyword, "content LIKE '%{text}%'", true); $query = C::t('portal_article_content')->fetch_all_by_sql(' 1 '.$srchtxtsql, 'ORDER BY aid DESC ', 0, $_G['setting']['search']['portal']['maxsearchresults']); foreach($query as $article) { $ids .= ','.$article['aid']; $num++; } }
网站目录\source\class\table\table_portal_article_content.php
上面添加那个方法才能用$query = C::t(‘portal_article_content’)->fetch_all_by_sql。
首先说明啊,这个检索是直接用like来弄的,所以,如果你的站数据量大,这样很吃系统,自己掂量着办,我研究了下利用sphinx的,结果搞定了才发现这个只是针对论坛的帖子。搜索门户中的文章,并不是按这个走的,而且利用sphinx这个啊,要么只能分中文要么只能分英文(学艺不精没细了解啊,个人测试是这样的)。而我目前碰到的要求是需要对文章也执行like。所以,经过研究,类比了下搜索文章标题的功能,成功实现了discuzX3对门户中的文章进行全文检索的功能,以下操作方法discuz版本为20140101的X3.1。具体方法如下:
3.打开
在其后添加如下代码:
1.用notepad++或其他文本编辑器打开下述文件
复制代码代码如下:
class table_portal_article_content extends discuz_table
2.在下面的
复制代码代码如下:
class table_portal_article_content extends discuz_table
{
public function fetch_all_by_sql($where, $order = '', $start = 0, $limit = 0, $count = 0, $alias = '') {
$where = $where && !is_array($where) ? " WHERE $where" : '';
if(is_array($order)) {
$order = '';
}
if($count) {
return DB::result_first('SELECT count(*) FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));
}
return DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));
}
网站目录\source\module\search\search_portal.php
</p> <p> foreach($query as $article) {
$ids .= ','.$article['aid'];
$num++;
}
复制代码代码如下:
上面代码的意思是,如果搜标题没搜到,那就用like来搜文章的内容。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jz/discuz/2911.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Discuz x2.5 伪静态规则成功
时间:2020-12-29
-
discuz X2正式版forum首页的
时间:2020-12-27
-
Discuz伪静态 配置搜索引擎
时间:2020-12-26
-
Discuz登录后总是显示未登
时间:2020-12-23
-
怎么换云服务器? Discuz论坛
时间:2020-12-23
-
Discuz!7.0主题回收站功能详
时间:2020-12-23
-
discuz 修改创始人密码、管
时间:2020-12-23
-
discuz论坛用户通过邮件验
时间:2020-12-23
热门文章
-
去掉discuz列表页的最新公告_Discuz模板开发
时间:2020-12-13
-
修改discuz X3.2论坛标题80个字符的长度限制
时间:2020-12-14
-
discuz 修改创始人密码、管理员登录密码的
时间:2020-12-23
-
discuz主题内容页面的打印按钮代码
时间:2020-12-13
-
Discuz!7.0主题回收站功能详解
时间:2020-12-23
-
footer.htm底部文件$_G['setting']['icp']、{if $
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
$article['related']Discuz 门户文章内容页的相
时间:2020-12-13
-
discuz教程_discuz视频教程_discuz论坛模板制
时间:2020-12-14
-
Discuz教程:使用微信登陆出现“目前无法
时间:2020-12-15
