目錄 ElasticSearch 實現分詞全文檢索 - 概述 ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝 ElasticSearch 實現分詞全文檢索 - Restful基本操作 --待發佈 ElasticSearch 實現分詞全文檢索 - Java Spring ...
目錄
ElasticSearch 實現分詞全文檢索 - 概述
ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝
ElasticSearch 實現分詞全文檢索 - Restful基本操作 --待發佈
ElasticSearch 實現分詞全文檢索 - Java SpringBoot ES 索引操作 --待發佈
ElasticSearch 實現分詞全文檢索 - Java SpringBoot ES 文檔操作 --待發佈
ElasticSearch 實現分詞全文檢索 - 測試數據準備 --待發佈
ElasticSearch 實現分詞全文檢索 - term、terms查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - Scroll 深分頁 --待發佈
ElasticSearch 實現分詞全文檢索 - delete-by-query --待發佈
ElasticSearch 實現分詞全文檢索 - 複合查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - filter查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - 高亮查詢 --待發佈
ElasticSearch 實現分詞全文檢索 - 聚合查詢 cardinality --待發佈
ElasticSearch 實現分詞全文檢索 - 經緯度查詢 --待發佈
安裝 ElasticSearch
詳見 Docker 安裝 Elasticsearch、Kibana 7.9.3
或者 使用 docker compose 安裝
[root@localhost elasticsearch]# pwd
/opt/elasticsearch
#安裝
[root@localhost elasticsearch]# docker-compose up -d
#查看日誌
[root@localhost elasticsearch]# docker-compose logs -f
docker-compose.yml
version:
services:
elasticsearch:
image: daocloud.io/library/elasticsearch:7.9.3
restart: always
container_name: elasticsearch
ports:
-9200:9200
kibana:
image: daocloud.io/library/kibana:7.9.3
restart: always
container name: kibana
ports:
- 5601:5601
environment:
- elasticsearch url=http://172.16.3.88:9200
depends_on:
- elasticsearch
安裝 IK Analysis
ES 預設分詞器,對漢字的分詞不太友好
下載 ik 分詞器插件
找到對應的 Elasticsearch 版本,這裡用的:7.9.3,將地址複製到訊雷里下,直接下的話下不動
https://elasticsearch.cn/download/
方式一:在容器中下載安裝
先把zip下載下來。放到任意一臺伺服器(直接github上下載多數會失敗)
# 查看 ES 的容器ID
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad684997e228 elasticsearch:7.9.3 "/tini -- /usr/local…" 7 minutes ago Up 7 minutes 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
# 進入 ES 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通過命令進行 ElasticSearch 插件安裝,不需要重啟
[root@ad684997e228 elasticsearch]# elasticsearch-plugin install http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading http://172.16.0.66/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#
方式二:將文件上傳至容器,進行安裝
將 ik 文件傳至伺服器
將 ik 複製到容器,並安裝
# 查看 ES 的容器ID
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad684997e228 elasticsearch:7.9.3 "/tini -- /usr/local…" 7 minutes ago Up 7 minutes 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
# 將it 插件,複製到容器中
[root@localhost ~]# docker cp /opt/elasticsearch-analysis-ik-7.9.3.zip ad684997e228:/usr/share/elasticsearch
# 進入 ES 容器
[root@localhost ~]# docker exec -it ad68 /bin/bash
# 通過命令進行 ElasticSearch 插件安裝,不需要重啟
[root@ad684997e228 elasticsearch]# elasticsearch-plugin install file:\/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Installing file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
-> Downloading file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.9.3.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
-> Installed analysis-ik
[root@ad684997e228 elasticsearch]#
重啟容器
docker restart xxx
如果不重啟會報:failed to find global analyzer [ik_smart]
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "failed to find global analyzer [ik_smart]"
}
],
"type": "illegal_argument_exception",
"reason": "failed to find global analyzer [ik_smart]"
},
"status": 400
}
介面測試(Postman)
http://172.16.3.88:9200/_analyze
{
"analyzer":"ik_smart",
"text":"心臟搭橋手術"
}
Kibana 測試
POST _analyze
{
"analyzer":"ik_smart",
"text":"心臟搭橋手術"
}