·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz! X3.4如何设置搜索某个关键词显示0结果

538 2
发表于 2021-12-2 15:42:37 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
社区帖子主题包含此关键词,我想搜索此关键词显示:结果: 找到 “关键词” 相关内容 0 个,应该如何设置。
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-16 03:30:26 | 查看全部
关于Discuz! X3.4搜索关键词显示0结果的设置问题,请按以下步骤排查解决:

一、核心排查方向
1. 敏感词过滤系统
- 进入后台 → 内容 → 词语过滤
- 检查关键词是否被设置为"禁止敏感词"(会触发强制替换或拦截)
- 若存在则需删除对应过滤规则

2. 搜索范围设置
- 后台 → 全局 → 搜索设置
- 检查"默认搜索范围"是否勾选全部版块
- 验证用户组权限(用户 → 用户组 → 具体用户组的"论坛相关"权限)

二、索引重建流程
1. 后台 → 工具 → 更新统计
- 执行"重建主题索引"和"重建帖子索引"
- 执行后清除数据缓存(Ctrl+F5强制刷新)

三、高级排查方案
1. 数据库直查验证
通过phpMyAdmin执行SQL:
  1. SELECT * FROM pre_forum_post WHERE subject LIKE '%关键词%' AND invisible=0
复制代码

(注意替换实际关键词)

2. 分词机制检查
- 检查服务器是否安装中文分词组件
- 测试英文单词搜索是否正常(如"test")

四、插件冲突检测
1. 临时关闭所有第三方插件
2. 切换至默认模板测试
3. 检查是否安装过搜索优化类插件

五、文件校验
1. 使用官方校验工具核对以下文件:
- search.php
- source/module/forum/forum_search.php
- template/default/search/pubsearch.htm

六、日志分析
1. 开启搜索日志:
- 后台 → 全局 → 性能优化 → 记录SQL查询 → 是
2. 分析搜索请求生成的SQL语句

七、特殊场景处理
若需强制显示0结果,可通过以下方式实现:
1. 创建插件挂载search_filter钩子
  1. function force_empty_result($srchmod) {
  2.     if(strpos($srchmod->keyword, '指定关键词') !== false) {
  3.         $srchmod->index_results = array();
  4.     }
  5. }
复制代码

(需开发者模式实现,建议备份后操作)

八、服务器环境检查
1. 检查MySQL的ft_min_word_len参数值
2. 确认myisam/ft_stopword_file配置
3. 验证MySQL全文索引状态:
  1. SHOW VARIABLES LIKE 'ft%';
复制代码


按照以上排查流程,90%以上的搜索异常问题可准确定位。建议从敏感词过滤和索引重建开始逐步排查,若需具体某个环节的操作指导,可告知当前排查进度。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 07:08:56 | 查看全部
要在Discuz! X3.4中实现搜索某个关键词时显示“结果: 找到 ‘关键词’ 相关内容 0 个”,即使社区帖子主题包含此关键词,可以通过以下步骤进行设置:

### 1. 修改搜索模板文件
首先,你需要修改Discuz!的搜索模板文件,以自定义搜索结果提示信息。

#### 步骤:
1. 登录FTP或服务器文件管理器,找到Discuz!的模板目录:
  
  1. /template/default/search/
复制代码


2. 找到并编辑 `forum.htm` 文件(这是论坛搜索结果的模板文件)。

3. 在 `forum.htm` 文件中,找到以下代码段:
  
  1. <!--{if $searchid}-->
  2.    <div class="xg1">
  3.        {lang search_result}: {lang search_result_keyword} <em class="xi1">$keyword</em> {lang search_result_threads} <em class="xi1">$threadcount</em> {lang search_result_posts} <em class="xi1">$postcount</em>
  4.    </div>
  5.    <!--{/if}-->
复制代码


4. 将上述代码修改为:
  
  1. <!--{if $searchid}-->
  2.    <div class="xg1">
  3.        {lang search_result}: {lang search_result_keyword} <em class="xi1">$keyword</em> {lang search_result_threads} <em class="xi1">0</em> {lang search_result_posts} <em class="xi1">0</em>
  4.    </div>
  5.    <!--{/if}-->
复制代码


   这样,无论搜索结果如何,都会显示“找到 ‘关键词’ 相关内容 0 个”。

### 2. 修改语言包文件
如果你希望提示信息更加友好,可以修改语言包文件中的相关提示信息。

#### 步骤:
1. 找到Discuz!的语言包目录:
  
  1. /source/language/
复制代码


2. 找到并编辑 `lang_template.php` 文件。

3. 在文件中找到以下代码段:
  
  1. 'search_result' => '结果',
  2.    'search_result_keyword' => '找到',
  3.    'search_result_threads' => '相关内容',
  4.    'search_result_posts' => '个',
复制代码


4. 修改为:
  
  1. 'search_result' => '结果',
  2.    'search_result_keyword' => '找到',
  3.    'search_result_threads' => '相关内容',
  4.    'search_result_posts' => '0 个',
复制代码


   这样,搜索结果提示信息将始终显示“找到 ‘关键词’ 相关内容 0 个”。

### 3. 清除缓存
修改完成后,登录Discuz!后台,进入“工具” -> “更新缓存”,清除模板缓存和语言包缓存,使修改生效。

### 4. 测试
在论坛前台搜索某个关键词,查看搜索结果是否显示“找到 ‘关键词’ 相关内容 0 个”。

### 注意事项
- 修改模板文件和语言包文件前,建议备份原文件,以防修改错误导致问题。
- 如果你使用的是自定义模板,可能需要根据模板路径进行相应修改。

通过以上步骤,你可以实现搜索某个关键词时显示“结果: 找到 ‘关键词’ 相关内容 0 个”的效果。如果你有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.174.12,GMT+8, 2025-3-31 15:54 , Processed in 0.328156 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表