elasticSearch的部(bu)署(shu)和(he)使用
部署服務
docker run啟動elastic服(fu)務
docker pull elasticsearch:6.7.2
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.7.2
docker-compose.yml的方式部署
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.2
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.2
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
elastic常用命令
查看集群是否健康
curl 'localhost:9200/_cat/health?v'
獲取集群的節點列表
curl 'localhost:9200/_cat/nodes?v'
列出所有索引
curl 'localhost:9200/_cat/indices?v'
建(jian)立名為customer的(de)索引(yin)
curl -XPUT 'localhost:9200/customer?pretty'
向索引customer,類型(xing)為external,添加數據(ju)
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
獲取數據
獲取customer索引(yin)下類型(xing)為external,id為1的數(shu)據,pretty參數(shu)表示返回結果格式美觀。
curl -XGET 'localhost:9200/customer/external/1?pretty'
刪除索引 DELETE
curl -XDELETE 'localhost:9200/customer?pretty'
修改數據,如(ru)果不存在,就新增
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
更新數據
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe", "age": 20 }
}'
刪除一條記錄數據
curl -XDELETE 'localhost:9200/customer/external/2?pretty'