docker上安裝elasticsearch和ik分詞器插件和header,實現分詞功能


docker run -di --name=tensquare_es -p 9200: -p 9300:9300 elasticsearch:5.6.8

創建elasticsearch容器(如果版本不是最新的需要在后面加上版本號)

直接瀏覽器訪問創建對應的索引庫(這里使用postman)

 

 

search模塊對應application.yml文件設置

添加之后9200可用,9300不可用,下面讓虛擬機上面的9300端口可用

docker exec  -it tensquare_es /bin/bash

將里面的elasticsearch.yml文件復制到容器外面的/usr/share文件夾下(復制的時候注意需要啟動容器)

docker cp tensquare_es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml

刪除之前的容器,創建新的容器

docker rm tensquare_es

docker run -di --name=tensquare_es -p 9200:9200 -p9300:9300 -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  elasticsearch:5.6.8

后面帶有顏色的表示,不使用冒號后面容器中的配置文件,使用前面指定的文件,這樣做好像因為容器相當於一台電腦,但是里面沒有vi編輯器,不能直接修改

 

修改復制好的elasticsearch.yml文件,刪除transport.host: 0.0.0.0所在行的注釋(去掉最前面的#),表示允許所有的主機訪問,

同樣的文件中 添加對應的跨域修改內容,之后重啟docker,容器可以使用,添加下面的內容是為了后面的header的使用

http.cors.enabled: true
http.cors.allow.origin: "*"

 修改后的elasticsearch.yml文件內容

 

同時需要放開更多的資源(docker的要求,因為這時候允許所有IP都可以訪問了,所以需要更多的資源),否則容器啟動不久就會掛掉,

解決辦法,修改/etc/security/limits.conf在文件里追加下面內容(可以一上來就修改這個文件)

* soft nofile 65536
* hard nofile 65536

nofile 單個進程允許打開的最大文件個數 soft是軟限制,hard是硬限制

修改后

 

在/etc/sysctl.conf文件中追加

vm.max_map_count=655360

表示限制一個進程最大能擁有虛擬內存的數量。

修改后

 到現在為止,可以使用進行英文的分詞

 

 

ik分詞器插件的安裝

直接將分詞器目錄拷貝到 容器所在目錄的/bin/bash/plugins

Alt+p打開SecureCRT的傳輸界面,使用下面命令傳輸ik文件夾

sftp> put ‐r d:\setup\ik

z在ik所在的文件夾下,拷貝到上面所說的插件目錄

docker cp ik tensquare_es:/usr/share/elasticsearch/plugins

重啟tensquare_es,測試,可以實現中文的分詞,否則只能實現英文的分詞

 

header 安裝(方便管理elasticsearch)

docker run -di --name=tensquare_header -p 9100:9100  mobz/elasticsearch-head:5

注意跨域的問題

瀏覽器訪問相應的端口號,連接對應端口的elasticsearch

上面的索引庫是之前使用postman訪問的時候就創建的創建的。

 

 

 

 

 

 

elasticsearch注意事項,

使用Java開發的時候使用9300接口,其他的使用9200端口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM