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

华宸源码资源站优化记录:从卡顿崩溃到企业级方案缓解

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

  1. 网站卡顿与搜索缓慢:随着资源站运营时间增长,WordPress 搭建的站点文章资源数量持续增多,直接导致网站整体运行卡顿,尤其是站内搜索功能,响应速度 “慢的一批”,严重影响用户体验。
  2. 数据库压力濒临极限:大量资源数据存储使得数据库承载的查询压力 “大大的要撑炸了”,长期处于高负荷状态,随时面临崩溃风险。
  3. 无限制搜索引发致命漏洞:站内搜索功能(如链接格式https://www.6z.hk/?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 来实现更高效的检索。

图片[1]-WordPress万篇文章站内搜索优化记录elasticsearch配合ElasticPress插件+Search Limiter & Blocker-华宸源码网

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

图片[2]-WordPress万篇文章站内搜索优化记录elasticsearch配合ElasticPress插件+Search Limiter & Blocker-华宸源码网

第三步安装Search Limiter & Blocker

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

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

图片[3]-WordPress万篇文章站内搜索优化记录elasticsearch配合ElasticPress插件+Search Limiter & Blocker-华宸源码网

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

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

插件不兼容问题

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

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

© 版权声明
THE END
喜欢就支持一下吧
分享