你有没有碰到过刚搭完织梦站,测试搜索功能的时候,明明后台有对应内容,搜出来就是空空一片的情况?我之前帮客户改老站的时候踩过不下十次这个坑,啥奇葩原因都遇见过,今天把所有能踩的坑都给你捋明白。
很多人装完织梦顺手改了系统设置,不小心把搜索功能关了都不知道。你直接进后台核心设置,找到互动设置板块,看是否开启搜索功能那个选项是不是选了否,我见过一半的新手都是栽在这,连开关没开都去改代码,纯纯白费功夫。
织梦默认搜索是搜文章模型的,要是你要搜的是产品、图集这些自定义模型的内容,没加模型配置肯定搜不出来。你去看搜索表单的代码里有没有加modelid参数,对应你要搜的模型ID就行,比如产品模型是10,就加个隐藏域传递参数就ok。
织梦默认有个关键词长度限制,少于2个字的关键词默认不搜索,还有一些特殊字符会被直接过滤,你要是搜单字或者带符号的词出不来结果太正常了。想改的话找到/include/arc.searchview.class.php这个文件,搜关键字长度相关的判断,把默认的2改成1就行,特殊字符过滤的规则也可以按需删改,不过别改太松,容易被恶意搜索搞崩服务器。

这事儿吧我上次踩坑踩得特别冤,客户站迁移完数据,搜索全空,查了俩小时才发现是搜索索引表没重建。你直接进后台核心模块,找到批量维护里的更新搜索关键词,点一下全部更新,要是索引表损坏的话,直接去数据库把对应的搜索索引表清空再重建就行,SQL代码给你放这:
```sql TRUNCATE TABLE `dede_search_keywords`; TRUNCATE TABLE `dede_search_fulltext`; ```注意要是你改了数据库表前缀,把dede_换成你自己的前缀就行,跑完再重新生成索引,90%的数据类问题都能解决。
别觉得模板改对了就没问题,织梦的缓存有时候卡得你怀疑人生。搜不出来的时候先把后台所有缓存全清一遍,包括模板缓存、数据缓存,再去看搜索结果页的模板是不是调用对了标签。很多人搜出来空白,其实是模板里的list标签写错了,或者调用的字段不对,你直接用默认的搜索结果模板测试下,要是默认模板能出结果,就是你自己写的模板有问题,对着默认标签改就行。
要是上面所有方法都试了还是不行,你就去看服务器的PHP错误日志,大概率是某个插件改了搜索的核心文件冲突了,把最近装的插件挨个禁用试一遍,基本都能找到问题。说白了织梦的搜索逻辑本身不复杂,出问题翻来覆去就是那几个原因,挨个排查就行,不用上来就乱改核心代码。
上一篇: zblog默认缩略图添加设置
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图