免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
將Elasticsearch作為Wordpress站內(nèi)搜索

WordPress自帶的搜索功能實(shí)在有點(diǎn)弱了,不僅容易給數(shù)據(jù)庫增加查詢負(fù)擔(dān),而且搜索出來的結(jié)果還不一定準(zhǔn)確,很難滿足于我們?nèi)粘5腤ordpress站內(nèi)搜索需求。于是強(qiáng)化Wordpress默認(rèn)搜索就非常有必要了,之前有分享過用Algolia給WordPress添加實(shí)時(shí)站內(nèi)搜索功能。

Algolia是一個(gè)專業(yè)的第三方搜索服務(wù)商,Algolia接入Wordpress非常方便,官方也提供了插件直接啟用即可。Algolia作為Wordpress的默認(rèn)搜索,不僅搜索質(zhì)量高、結(jié)果準(zhǔn),而且還是即時(shí)搜索,可以完美整合到Wordpress,推薦給土豪朋友使用。

為什么說要推薦給土豪朋友使用?原因是Algolia雖然也有免費(fèi)的搜索額度,但是額度太低了,低到只能滿足一個(gè)小博客使用,企業(yè)用戶建議使用Algolia的專業(yè)版,可以省去一筆自建搜索的費(fèi)用。Algolia作Wordpress的搜索具體效果請(qǐng)參考wzfou.com右上角搜索功能。

這篇文章主要是來分享一下如何利用Elasticsearch來自建Wordpress搜索,采用docker方式安裝elasticSearch,kibana和ik分詞器。過程非常地簡(jiǎn)單,更多的Wordpress建站教程,這里有:

  1. WordPress文章目錄側(cè)邊固定滾動(dòng)-Easy Table 和LuckyWP Table插件
  2. WordPress子主題創(chuàng)建與使用方法-防止修改過的CSS,JS和代碼失效
  3. 讓圖片飛一會(huì)兒!網(wǎng)站圖片WebP格式批量轉(zhuǎn)換設(shè)置及加速效果體驗(yàn)

一、Elasticsearch準(zhǔn)備工作

1.1 準(zhǔn)備一臺(tái)VPS

不建議將Elasticsearch與Wordpress安裝在同一臺(tái)VPS主機(jī)上,這樣有一定的風(fēng)險(xiǎn),建議實(shí)行搜索與WP分離保證安全。便宜的VPS主機(jī)可以參考這里:VPS主機(jī)排行榜單,內(nèi)存越大越好,實(shí)測(cè)1GB的內(nèi)存運(yùn)行流暢。

1.2 準(zhǔn)備好docker

首先,你需要先安培安裝 Docker CE (社區(qū)版)和Docker Compose,以下命令是基于Debian系統(tǒng)的演示,如果你是CentOS、Ubuntu,請(qǐng)參考官網(wǎng):

安裝 Docker CE (社區(qū)版):https://docs.docker.com/install/linux/docker-ce/ubuntu/

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

Debian 9系統(tǒng)安裝Docker CE 和Docker Compose如下:

  1. #卸載
  2. sudo apt-get remove docker docker-engine docker.io containerd runc
  3. #SET UP THE REPOSITORY
  4. sudo apt-get update
  5. sudo apt-get install \
  6. apt-transport-https \
  7. ca-certificates \
  8. curl \
  9. gnupg2 \
  10. software-properties-common
  11. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  12. #檢測(cè)是否安裝成功
  13. sudo apt-key fingerprint 0EBFCD88
  14. #有以下輸出就表示成功添加Docker’s official GPG key:
  15. root@hostfbc9e58d73:~# sudo apt-key fingerprint 0EBFCD88
  16. pub rsa4096 2017-02-22 [SCEA]
  17. 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
  18. uid [ unknown] Docker Release (CE deb) <docker@docker.com>
  19. sub rsa4096 2017-02-22 [S]
  20. #添加stable repository
  21. sudo add-apt-repository \
  22. "deb [arch=amd64] https://download.docker.com/linux/debian \
  23. $(lsb_release -cs) \
  24. stable"
  25. #開始安裝
  26. sudo apt-get update
  27. sudo apt-get install docker-ce docker-ce-cli containerd.io
  28. #驗(yàn)證 Docker Engine - Community是否安裝正確
  29. sudo docker run hello-world
  30. #有以下輸出就表示正確安裝
  31. root@hostfbc9e58d73:~# sudo docker run hello-world
  32. Unable to find image 'hello-world:latest' locally
  33. latest: Pulling from library/hello-world
  34. 1b930d010525: Pull complete
  35. Digest: sha256:b8ba256769a0ac28dd126d584e0a2011cd2877f3f76e093a7ae560f2a5301c00
  36. Status: Downloaded newer image for hello-world:latest
  37. Hello from Docker!
  38. This message shows that your installation appears to be working correctly.
  39. To generate this message, Docker took the following steps:
  40. 1. The Docker client contacted the Docker daemon.
  41. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
  42. (amd64)
  43. 3. The Docker daemon created a new container from that image which runs the
  44. executable that produces the output you are currently reading.
  45. 4. The Docker daemon streamed that output to the Docker client, which sent it
  46. to your terminal.
  47. To try something more ambitious, you can run an Ubuntu container with:
  48. $ docker run -it ubuntu bash
  49. Share images, automate workflows, and more with a free Docker ID:
  50. https://hub.docker.com/
  51. For more examples and ideas, visit:
  52. https://docs.docker.com/get-started/
  53. #安裝 Docker Compose
  54. sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  55. sudo chmod +x /usr/local/bin/docker-compose
  56. #檢測(cè)是否安裝成功
  57. docker-compose --version
  58. #有輸出即表示成功
  59. docker-compose version 1.24.1, build 4667896b
  60. #如果提示命令不存在,可以手動(dòng)創(chuàng)建鏈接
  61. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

二、安裝elasticSearch及插件

2.1 docker裝elasticSearch

鏡像:

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

docker裝elasticSearch非常地簡(jiǎn)單,只需要一個(gè)命令:

  1. docker pull elasticsearch:5.6.11

2.2 docker安裝kibana

鏡像:

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

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

  1. #版本號(hào)要與ES版本號(hào)一致
  2. docker pull kibana:5.6.11

如下圖:

2.3 啟動(dòng)ES和kibana

在開發(fā)模式下直接使用以下命令啟用即可:

  1. docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:5.6.11
  2. docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:5.6.11

打開你的瀏覽器訪問:IP+9200,可以看到elasticSearch啟動(dòng)成功。

打開你的瀏覽器訪問:IP+5601,可以看到kibana啟動(dòng)成功。(如果提示未準(zhǔn)備好,請(qǐng)稍等一會(huì)兒)

這是5.6.11版本的kibana:

2.4 安裝ik分詞器

項(xiàng)目:

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

使用以下命令可以安裝ik分詞器:

  1. #查看當(dāng)前運(yùn)行的容器
  2. docker ps
  3. #執(zhí)行命令進(jìn)入到elasticsearch容器里,具體名稱請(qǐng)根據(jù)自己的實(shí)現(xiàn)情況修改
  4. docker exec -it elasticsearch /bin/bash
  5. #使用elasticsearch-plugin進(jìn)行下載,版本號(hào)要與ES版本號(hào)一致
  6. ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.11/elasticsearch-analysis-ik-5.6.11.zip
  7. # 退出容器
  8. ctrl+p+q

如下圖:

2.5 Compose啟動(dòng)

在正式的使用環(huán)境里,建議使用Docker-Compose啟動(dòng)elasticSearch及插件,首先是創(chuàng)建yml文件:vim docker-compose.yml,填寫以下內(nèi)容:

  1. version: '2.2'
  2. services: # 包含需要操作的容器
  3. elasticsearch: #容器名稱
  4. image: docker.elastic.co/elasticsearch/elasticsearch:5.6.11 #ES鏡像
  5. container_name: elasticsearch #容器名稱
  6. environment:
  7. - cluster.name=docker-cluster #集群名稱,可以不用管
  8. - bootstrap.memory_lock=true
  9. - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #JVM大小
  10. ulimits:
  11. memlock:
  12. soft: -1
  13. hard: -1
  14. volumes:
  15. - esdata1:/usr/share/elasticsearch/data
  16. ports: #端口
  17. - 9200:9200
  18. networks:
  19. - esnet
  20. kibana:
  21. image: docker.elastic.co/kibana/kibana:5.6.11
  22. environment:
  23. SERVER_NAME: kibana
  24. ELASTICSEARCH_HOSTS: http://150.95.177.167:9200 #替換你的ES地址

然后后臺(tái)啟動(dòng)elasticSearch及插件:

  1. #后臺(tái)啟動(dòng)
  2. docker-compose up -d

三、WP整合Elasticsearch

插件:

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

WordPress強(qiáng)大之處在于有著非常多的插件,Elasticsearch就是一個(gè)整合elasticSearch搜索到Wordpress的插件,下載插件后填寫你的elasticSearch地址。

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

  1. // ElasticPress Host
  2. define( 'EP_HOST', 'http://127.0.0.1:9200' );

保存后elasticSearch插件會(huì)自動(dòng)添加索引,你也可以在設(shè)置中給不同的文件、分類、標(biāo)簽等設(shè)置啟用或者不啟用索引。(點(diǎn)擊放大)

另外,插件還提供了權(quán)重設(shè)置,請(qǐng)根據(jù)自己的需求來調(diào)整,確保搜索結(jié)果更加精準(zhǔn)。(點(diǎn)擊放大)

四、可能存在的問題

4.1 虛擬內(nèi)存太小

啟用Elasticsearch時(shí)可能會(huì)提示虛擬內(nèi)存不足,解決辦法如下:

  1. #提示錯(cuò)誤
  2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  3. #切換到root用戶,執(zhí)行命令:
  4. vim /etc/sysctl.conf
  5. # 添加
  6. vm.max_map_count=262144
  7. #保存退出,執(zhí)行
  8. sysctl -p

4.2 同名容器存在

解決辦法就是列出所有容量,存在同名的給予刪除,如果正在運(yùn)行則先Kill再刪除:

  1. docker ps -a
  2. docker rm es
  3. docker kill kibana
  4. docker kill elasticsearch
  5. docker rm kibana
  6. docker rm elasticsearch

4.3 Docker常用命令

Docker常用基本命令如下:

  1. #Docker常用基本命令
  2. #拉取鏡像
  3. docker image pull 鏡像名
  4. #查看鏡像列表
  5. docker images
  6. #或者
  7. docker image ls
  8. #刪除鏡像
  9. docker irm image_id
  10. #或者
  11. docker image rm 鏡像名或鏡像id
  12. #鏡像備份
  13. docker save -o 保存的文件路徑以及文件名 鏡像名
  14. #鏡像遷移/加載到本地
  15. docker load -i 鏡像路徑
  16. #容器相關(guān)操作
  17. #創(chuàng)建容器
  18. docker run -itd --restart always --name 容器名 鏡像名 執(zhí)行的命令
  19. #其他參數(shù)含義:
  20. --network=host 表示將主機(jī)的網(wǎng)絡(luò)環(huán)境映射到容器中,容器的網(wǎng)絡(luò)與主機(jī)相同
  21. -p 表示端口映射,前者是宿主機(jī)端口,后者是容器內(nèi)的映射端口??梢允褂枚鄠€(gè)-p 做多個(gè)端口映射
  22. -v 表示目錄映射關(guān)系(前者是宿主機(jī)目錄,后者是映射到宿主機(jī)上的目錄,即 宿主機(jī)目錄:容器中目錄),可以使 用多個(gè)-v 做多個(gè)目錄或文件映射。注意:最好做目錄映射,在宿主機(jī)上做修改,然后 共享到容器上。
  23. -i 表示以“交互模式”運(yùn)行容器 -t 表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后,容器創(chuàng)建就能登錄進(jìn)去。即 分配一個(gè)偽終端。
  24. --name 為創(chuàng)建的容器命名
  25. -d 在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不 會(huì)自動(dòng)登錄容器,如果只加-i -t 兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)。
  26. -e 為容器設(shè)置環(huán)境變量 -e username="ritchie": 設(shè)置環(huán)境變量
  27. --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型
  28. --link=[]: 添加鏈接到另一個(gè)容器 -
  29. -expose=[]: 開放一個(gè)端口或一組端口 -h "RidingRoad": 指定容器的hostname
  30. #啟動(dòng)容器
  31. docker container start container_name或container_id
  32. #停止容器
  33. docker container stop container_name或container_id
  34. #kill容器
  35. docker container kill container_name或container_id
  36. #查看容器列表
  37. # 查看正在運(yùn)行的容器
  38. docker ps 或 docker container ls
  39. # 查看所有容器
  40. docker ps -a 或 docker container ls --all
  41. #向容器傳入和執(zhí)行命令
  42. docker container exec container_id 命令
  43. #進(jìn)入容器終端
  44. docker attach container_id
  45. #或
  46. docker container exec container_id /bin/bash
  47. #容器轉(zhuǎn)入后臺(tái)運(yùn)行
  48. Ctrl + p 然后 Ctrl + q
  49. #刪除容器
  50. docker rm container_id
  51. #或
  52. docker container rm container_id

五、總結(jié)

Elasticsearch建立了索引之后,下次我更新Wordpress的文章或者評(píng)論時(shí)就會(huì)自動(dòng)更新索引了,特別需要提醒的是如果你的Wordpress有運(yùn)行Redis等緩存請(qǐng)關(guān)閉,否則會(huì)造成PHP死循環(huán)。

檢測(cè)Elasticsearch有沒有生效的辦法就是到你的Wordpress前臺(tái)搜索關(guān)鍵字,看看有沒有自動(dòng)建議或者精準(zhǔn)結(jié)果,一般來說啟用了插件后搜索出來的結(jié)果都調(diào)用的Elasticsearch的索引內(nèi)容。

文章出自:挖站否 https://wzfou.com/elasticsearch/,版權(quán)所有。本站文章除注明出處外,皆為作者原創(chuàng)文章,可自由引用,但請(qǐng)注明來源。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Docker 部署前后端項(xiàng)目
使用Docker搭建ELK日志系統(tǒng)的方法示例
ELK日志分析系統(tǒng)(1)-基本環(huán)境搭建
ElasticSearch學(xué)習(xí)
使用DockerCompose搭建部署Kibana
如何在Debian 10 Linux上安裝和使用Docker Compose
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服