WordPress万篇文章站内搜索优化记录elasticsearch配合ElasticPress插件+Search Limiter & Blocker

优化记录:从卡顿崩溃到企业级方案缓解

一、资源站核心痛点:内容激增引发的系列问题

  1. 网站卡顿与搜索缓慢:随着资源站运营时间增长,WordPress 搭建的站点文章资源数量持续增多,直接导致网站整体运行卡顿,尤其是站内搜索功能,响应速度 “慢的一批”,严重影响用户体验。
  2. 数据库压力濒临极限:大量资源数据存储使得数据库承载的查询压力 “大大的要撑炸了”,长期处于高负荷状态,随时面临崩溃风险。
  3. 无限制搜索引发致命漏洞:站内搜索功能(如链接格式https://malym.shujuhuo.com/?s=关键词)缺乏限制机制,网友可无限制重复查询,极易触发数据库刷炸问题,此前已出现类似恶意查询搞垮站点的隐患。

二、解决方案:采纳 “狗友” 建议的企业级方案

在面临站点运营危机时,参考了 “狗友” 推荐的企业级优化方案。该方案虽包含付费项目,但针对个人性质的狗凯之家资源站,其免费版本功能已完全满足需求,有效解决了数据库查询压力大、搜索无限制等核心问题,缓解了站点卡顿、崩溃风险,保障了资源站后续稳定运行。

第一步呢就是装一个elasticsearch服务ElasticPress插件要用到

elasticsearch这个可以用docker部署

执行以下命令启动 Elasticsearch 容器:




docker run -itd --name elasticsearch \


-p 9200:9200 -p 9300:9300 \


-e "discovery.type=single-node" \


-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \


elasticsearch:7.12.0


----------------------------------------------------------------------版本任选一个即可


docker run -itd \


--name elasticsearch8 \


-p 9200:9200 \


-p 9300:9300 \


-e "discovery.type=single-node" \


-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \


-e "xpack.security.enabled=false" \


-e "xpack.security.enrollment.enabled=false" \


elasticsearch:8.15.0

第二部就是装ElasticPress插件用于把网站所有文章数据转移到elasticsearch服务

Elasticsearch 是底层的搜索引擎服务(负责存储、检索数据),而 ElasticPress 是WordPress 专属的插件,它的核心作用是连接 WordPress 与 Elasticsearch—— 既可以把 WordPress 的文章、页面等数据同步到 Elasticsearch 中,也能让 WordPress 的站内搜索功能调用 Elasticsearch 来实现更高效的检索。

image.png

启动插件后根据向导到下图完成站内文章同步,我的网站一万2000+的文章同步也就1-3分钟吧

image.png

第三步安装Search Limiter & Blocker

这两个插件不需要费劲的到处去找,直接在WordPress插件安装里搜索关键词就可以了

这个插件主要是用来限制用户的搜索频率避免刷关键词 刷爆你的mysql查询

image.png

最后就配置完这两个插件就OK了,第一个同步完成后搜索速度就会加快很多

第二个可以限制搜索频率,大大降低被站内搜索攻击

插件不兼容问题

这里难免会有WordPress版本和插件不兼容的问题

有些人会有报错的情况,下面给会员再分享一种免费的平替特别适合个人中小型网站

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容