将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

  • A+
所属分类:WordPress技巧

WordPress自带的搜索功能实在有点弱了,不仅容易给数据库增加查询负担,而且搜索出来的结果还不一定准确,很难满足于我们日常的Wordpress站内搜索需求。于是强化Wordpress默认搜索就非常有必要了,之前有分享过用Algolia给WordPress添加实时站内搜索功能

Algolia是一个专业的第三方搜索服务商,Algolia接入Wordpress非常方便,官方也提供了插件直接启用即可。Algolia作为Wordpress的默认搜索,不仅搜索质量高、结果准,而且还是即时搜索,可以完美整合到Wordpress,推荐给土豪朋友使用。

为什么说要推荐给土豪朋友使用?原因是Algolia虽然也有免费的搜索额度,但是额度太低了,低到只能满足一个小博客使用,企业用户建议使用Algolia的专业版,可以省去一笔自建搜索的费用。Algolia作Wordpress的搜索具体效果请参考wzfou.com右上角搜索功能。

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

这篇文章主要是来分享一下如何利用Elasticsearch来自建Wordpress搜索,采用docker方式安装elasticSearch,kibana和ik分词器。过程非常地简单,更多的Wordpress建站教程,这里有:

  1. WordPress文章目录侧边固定滚动-Easy
    Table 和LuckyWP Table插件
  2. WordPress子主题创建与使用方法-防止修改过的CSS,JS和代码失效
  3. 让图片飞一会儿!网站图片WebP格式批量转换设置及加速效果体验

一、Elasticsearch准备工作

1.1 准备一台VPS

不建议将Elasticsearch与Wordpress安装在同一台VPS主机上,这样有一定的风险,建议实行搜索与WP分离保证安全。便宜的VPS主机可以参考这里:VPS主机排行榜单,内存越大越好,实测1GB的内存运行流畅。

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

1.2 准备好docker

首先,你需要先安培安装 Docker CE (社区版)和Docker
Compose,以下命令是基于Debian系统的演示,如果你是CentOS、Ubuntu,请参考官网:

安装 Docker CE
(社区版):https://docs.docker.com/install/linux/docker-ce/ubuntu/

安装 Docker
Compose:https://docs.docker.com/compose/install/#install-compose

Debian 9系统安装Docker CE 和Docker Compose如下:

二、安装elasticSearch及插件

2.1 docker装elasticSearch

镜像:

  1. https://hub.docker.com/_/elasticsearch

docker装elasticSearch非常地简单,只需要一个命令:

2.2 docker安装kibana

镜像:

  1. https://hub.docker.com/_/kibana

docker安装kibana也是一行命令,如下:

如下图:

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

2.3 启动ES和kibana

在开发模式下直接使用以下命令启用即可:

打开你的浏览器访问:IP+9200,可以看到elasticSearch启动成功。

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

打开你的浏览器访问:IP+5601,可以看到kibana启动成功。(如果提示未准备好,请稍等一会儿)

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

这是5.6.11版本的kibana:

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

2.4 安装ik分词器

项目:

  1. https://github.com/medcl/elasticsearch-analysis-ik/releases

使用以下命令可以安装ik分词器:

如下图:

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

2.5 Compose启动

在正式的使用环境里,建议使用Docker-Compose启动elasticSearch及插件,首先是创建yml文件:vim docker-compose.yml,填写以下内容:

然后后台启动elasticSearch及插件:

三、WP整合Elasticsearch

插件:

  1. https://wordpress.org/plugins/elasticpress/
  2. https://github.com/10up/ElasticPress

WordPress强大之处在于有着非常多的插件,Elasticsearch就是一个整合elasticSearch搜索到Wordpress的插件,下载插件后填写你的elasticSearch地址。

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

也可以在wp-config.php指定:

保存后elasticSearch插件会自动添加索引,你也可以在设置中给不同的文件、分类、标签等设置启用或者不启用索引。(点击放大)

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

另外,插件还提供了权重设置,请根据自己的需求来调整,确保搜索结果更加精准。(点击放大)

将Elasticsearch作为WordPress站内搜索-docker安装elasticSearch,kibana和ik分词器

四、可能存在的问题

4.1 虚拟内存太小

启用Elasticsearch时可能会提示虚拟内存不足,解决办法如下:

4.2 同名容器存在

解决办法就是列出所有容量,存在同名的给予删除,如果正在运行则先Kill再删除:

4.3 Docker常用命令

Docker常用基本命令如下:

五、总结

Elasticsearch建立了索引之后,下次我更新Wordpress的文章或者评论时就会自动更新索引了,特别需要提醒的是如果你的Wordpress有运行Redis等缓存请关闭,否则会造成PHP死循环。

检测Elasticsearch有没有生效的办法就是到你的Wordpress前台搜索关键字,看看有没有自动建议或者精准结果,一般来说启用了插件后搜索出来的结果都调用的Elasticsearch的索引内容。

文章出自:挖站否 https://wzfou.com/elasticsearch/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin