Elasticsearch学习环境搭建
Elasticsearch安装
下载windows 7.17.5版本安装包,安装包是一个zip,和tomcat一样解压即可用,elasticsearch依赖JDK环境,至少需要JDK 1.8版本。
运行
# 进入bin目录
.\elasticsearch.bat
启动完毕后,浏览器输入http://localhost:9200/
将会得到以下结果
{
"name": "DESKTOP-EA3D6O1",
"cluster_name": "elasticsearch",
"cluster_uuid": "mgtShLI9R2-g57-_3ARkfQ",
"version": {
"number": "7.17.5",
"build_flavor": "default",
"build_type": "zip",
"build_hash": "8d61b4f7ddf931f219e3745f295ed2bbc50c8e84",
"build_date": "2022-06-23T21:57:28.736740635Z",
"build_snapshot": false,
"lucene_version": "8.11.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
可视化界面安装(elasticsearch-head)
git clone git@github.com:mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
访问http://localhost:9100/
连接elasticsearch
在elasticsearch服务端中配置跨域,在安装目录/config/elasticsearch.yml中加入以下配置
http:
cors:
enabled: true
allow-origin: "*"
此外,elasticsearch-head
还有一个chrome plugin,使用它可以不用配置跨域。
安装Kibana
为了不必要的麻烦,下载与elasticsearch
同样的版本7.17.5
运行
# 进入bin目录
.\kibana.bat
访问http://localhost:5601
配置中文界面,在安装目录/config/kibana.yml中加入以下配置
i18n.locale: "zh-CN"
docker安装
services:
elasticsearch:
image: elasticsearch:7.17.5
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
volumes:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./elasticsearch/data:/usr/share/elasticsearch/data
- ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
networks:
elastic:
aliases:
- elasticsearch
kibana:
image: kibana:7.17.5
container_name: kibana
ports:
- 5601:5601
volumes:
- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
depends_on:
- elasticsearch
networks:
elastic:
aliases:
- kibana
networks:
elastic:
name: elastic
driver: bridge
其中使用到的两个文件内容如下
elasticsearch.yml
cluster.name: "docker-cluster"
# 任意网卡IP都能访问
network.host: 0.0.0.0
# 不要去下载GeoIP全球ASN-IP离线定位库,否则启动会有报错,尽管不影响正常运行
ingest.geoip.downloader.enabled: false
kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
默认内容都是先启动容器,然后从容器下载下来得到的。
注:macos启动会报错,查看日志会发现是挂载的plugins目录下有.DS_Store文件导致,rm -f删除该文件即可,macos脑瘫设计。
IK分词器
默认的standard分词器对中文不是很友好,没有对中文进行合理分词,它是一个汉字就是一个token,如中国人会拆成中、国、人3个token。
下载和elasticsearch一样的版本即可。
由于docker安装时挂载了plugins目录,因此只需要解压缩到plugins/ik/目录下,重启容器即可。