乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       看見就非常 2020-04-30

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

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

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

      將Elasticsearch作為Wordpress站內(nèi)搜索-docker安裝elasticSearch,kibana和ik分詞器

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

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

      一、Elasticsearch準備工作

      1.1 準備一臺VPS

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

      Elasticsearch準備一臺VPS

      1.2 準備好docker

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

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

      安裝 Docker Compose:https://docs./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./linux/debian/gpg | sudo apt-key add -
      12. #檢測是否安裝成功
      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@>
      19. sub rsa4096 2017-02-22 [S]
      20. #添加stable repository
      21. sudo add-apt-repository \
      22. "deb [arch=amd64] https://download./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. #驗證 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./
      51. For more examples and ideas, visit:
      52. https://docs./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. #檢測是否安裝成功
      57. docker-compose --version
      58. #有輸出即表示成功
      59. docker-compose version 1.24.1, build 4667896b
      60. #如果提示命令不存在,可以手動創(chuàng)建鏈接
      61. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

      二、安裝elasticSearch及插件

      2.1 docker裝elasticSearch

      鏡像:

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

      docker裝elasticSearch非常地簡單,只需要一個命令:

      1. docker pull elasticsearch:5.6.11

      2.2 docker安裝kibana

      鏡像:

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

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

      1. #版本號要與ES版本號一致
      2. docker pull kibana:5.6.11

      如下圖:

      docker安裝kibana

      2.3 啟動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啟動成功。

      啟動ES和kibana

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

      kibana成功啟用

      這是5.6.11版本的kibana:

      kibana不同的版本

      2.4 安裝ik分詞器

      項目:

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

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

      1. #查看當(dāng)前運行的容器
      2. docker ps
      3. #執(zhí)行命令進入到elasticsearch容器里,具體名稱請根據(jù)自己的實現(xiàn)情況修改
      4. docker exec -it elasticsearch /bin/bash
      5. #使用elasticsearch-plugin進行下載,版本號要與ES版本號一致
      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

      如下圖:

      安裝ik分詞器

      2.5 Compose啟動

      在正式的使用環(huán)境里,建議使用Docker-Compose啟動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地址

      然后后臺啟動elasticSearch及插件:

      1. #后臺啟動
      2. docker-compose up -d

      三、WP整合Elasticsearch

      插件:

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

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

      WP整合Elasticsearch填寫地址

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

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

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

      WP整合Elasticsearch自動索引

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

      WP整合Elasticsearch調(diào)整結(jié)果

      四、可能存在的問題

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

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

      1. #提示錯誤
      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 同名容器存在

      解決辦法就是列出所有容量,存在同名的給予刪除,如果正在運行則先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 表示將主機的網(wǎng)絡(luò)環(huán)境映射到容器中,容器的網(wǎng)絡(luò)與主機相同
      21. -p 表示端口映射,前者是宿主機端口,后者是容器內(nèi)的映射端口。可以使用多個-p 做多個端口映射
      22. -v 表示目錄映射關(guān)系(前者是宿主機目錄,后者是映射到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后 共享到容器上。
      23. -i 表示以“交互模式”運行容器 -t 表示容器啟動后會進入其命令行。加入這兩個參數(shù)后,容器創(chuàng)建就能登錄進去。即 分配一個偽終端。
      24. --name 為創(chuàng)建的容器命名
      25. -d 在run后面加上-d參數(shù),則會創(chuàng)建一個守護式容器在后臺運行(這樣創(chuàng)建容器后不 會自動登錄容器,如果只加-i -t 兩個參數(shù),創(chuàng)建后就會自動進去容器)。
      26. -e 為容器設(shè)置環(huán)境變量 -e username="ritchie": 設(shè)置環(huán)境變量
      27. --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型
      28. --link=[]: 添加鏈接到另一個容器 -
      29. -expose=[]: 開放一個端口或一組端口 -h "RidingRoad": 指定容器的hostname
      30. #啟動容器
      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. # 查看正在運行的容器
      38. docker ps 或 docker container ls
      39. # 查看所有容器
      40. docker ps -a 或 docker container ls --all
      41. #向容器傳入和執(zhí)行命令
      42. docker container exec container_id 命令
      43. #進入容器終端
      44. docker attach container_id
      45. #或
      46. docker container exec container_id /bin/bash
      47. #容器轉(zhuǎn)入后臺運行
      48. Ctrl + p 然后 Ctrl + q
      49. #刪除容器
      50. docker rm container_id
      51. #或
      52. docker container rm container_id

      五、總結(jié)

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

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

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

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多