这篇文章主要介绍了discuzx3.1文章进行全文检索的实现方法,需要的朋友可以参考下

首先说明啊,这个检索是直接用like来弄的,所以,如果你的站数据量大,这样很吃系统,自己掂量着办,我研究了下利用sphinx的,结果搞定了才发现这个只是针对论坛的帖子。搜索门户中的文章,并不是按这个走的,而且利用sphinx这个啊,要么只能分中文要么只能分英文(学艺不精没细了解啊,个人测试是这样的)。而我目前碰到的要求是需要对文章也执行like。所以,经过研究,类比了下搜索文章标题的功能,成功实现了discuzX3对门户中的文章进行全文检索的功能,以下操作方法discuz版本为20140101的X3.1。具体方法如下:

1.用notepad++或其他文本编辑器打开下述文件

网站目录sourceclasstabletable_portal_article_content.php
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));
}

变为:

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));
}

上面添加那个方法才能用$query = C::t(‘portal_article_content’)->fetch_all_by_sql。

3.打开

网站目录sourcemodulesearchsearch_portal.php

搜索

</p> <p> foreach($query as $article) {
$ids .= ','.$article['aid'];
$num++;
}

在其后添加如下代码:

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++;
}
}

上面代码的意思是,如果搜标题没搜到,那就用like来搜文章的内容。
保存后,更新下discuz的缓存,搜文章里的内容试试,如果能搜到,OK,大功告成~

最新资讯
VIPKID获客成本高达1万元?创始人米雯娟:平均4000

VIPKID获客成本高达1

米雯娟表示,VIPKID今年也“被破产”了好几次,“家长群里
阿里朱顺炎:我为什么没马云成功?因为他在创造趋势

阿里朱顺炎:我为什么没

提到在阿里的经历,他强调了把握趋势和建好组织的重要性
樊登读书创始人:罗永浩创业做英语 半年就能把债还清

樊登读书创始人:罗永

樊登认为,罗永浩不该做智能手机和电子烟这类的复杂体系
美国应用开发商起诉苹果:扶持自主应用打击对手

美国应用开发商起诉苹

Followapp和BlueMail等应用的开发商Blix提交了针对苹
中国电信科研人员发奖金:涉及几百人 单项最高奖8万

中国电信科研人员发奖

中国电信公布了“2019年中国电信集团科技进步、标准奖
理想汽车电池被曝出故障 官方回应:电池电芯没有问题

理想汽车电池被曝出故

针对车主反映的“动力电池故障”问题,理想汽车官方回复
最新文章
Discuz!开启使用HTML、主题分类、分类信息的方法

Discuz!开启使用HTML

好多新手站长对于HTML的开启、使用,分类信息的开启、使
discuz x2修改密码注册用户获取密码放在第三方平台

discuz x2修改密码注

是由于整个ucenter的同步接口存在很多问题,尤其同步信
对不起,您安装的不是正版应用,安装程序无法继续执行 discuz

对不起,您安装的不是

当我们在使用别人购买的Discuzx2.5模板或者插件是,系统
discuz 批量删除的sql命令小结

discuz 批量删除的sql

这篇文章主要介绍了discuz批量删除内容的一些sql语句,
discuz修改太阳、月亮、星星等默认等级图标的方法

discuz修改太阳、月亮

想修改一下默认的等级图标,先把你的等级图片在论坛用附
discuz 修改创始人密码、管理员登录密码的方法

discuz 修改创始人密

今天在安装了discuz的时候,由于密码设置的比较简单,为了
北京福彩网 新浪爱彩
    <samp id="cwms4"><ruby id="cwms4"></ruby></samp><wbr id="cwms4"><noscript id="cwms4"></noscript></wbr>
    <kbd id="cwms4"><noscript id="cwms4"></noscript></kbd><bdo id="cwms4"><ruby id="cwms4"></ruby></bdo>

    <ins id="cwms4"></ins>
    <code id="cwms4"></code>
    <kbd id="cwms4"></kbd>
    <ins id="cwms4"></ins>
    <table id="cwms4"></table>
  1. <samp id="cwms4"><ruby id="cwms4"></ruby></samp>

    1. <em id="cwms4"><track id="cwms4"></track></em>
    2. 99棋牌| 老棋牌| 比特棋牌| 大家玩棋牌| 老棋牌| 天天乐棋牌| 网络棋牌| 传奇私服| 百赢棋牌| 天天乐棋牌|