elasticSearch 常用功能
index:名词相当于database,动词相当与insert
type:相当于table
document:相当与一条条数据
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
docker images :列出本地镜像
docker ps :列出容器
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo “http:host:0.0.0.0” >> /mydata/elasticsearch/config/elasticsearch.yml
docker run --name kaka-elasticsearch -p 9200:9200 -p 9300:9300
docker update xx --restart=always (开机自动重启)
-e discovery.type=single-node
-e ES_JAVA_OPTS=“-Xms64m -Xmx128m”
-v /kaka-data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /kaka-data/elasticsearch/data:/usr/share/elasticsearch/data
-v /kaka-data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch:7.4.2
–(-d表示用什么镜像,-v挂载目录)
启动kibana
docker run --name kaka-kibana -e ELASTICSEARCH_HOSTS=http://192.xx.xx.xx:9200 -p 5601:5601
-d kibana:7.4.2
elasticSearch 可使用rest方式调用
get
/_cat/nodes :查看所有节点
/_cat/health :查看es健康状况
/_cat/master :查看主节点
/_cat/indeices :查看所有索引
put database/person/1 {请求体json} --(put必须带id,post带id如果es有,则为修改)
elasticSearch 可以使用seq_no作为乐观锁
删除文档 DELETE DATABASE 或者删除数据delete database/person/1 不支持删除类型(type)操作
批量操作
post /database/person/_bulk {“index”:{“_id”:“1”}}
{“name”:“tony”,“age”:9}
queryDSL
get person/_search
{
“query”:{
“match_all”{}
},
“sort”:[
{“name”:“asc”},
{“age”:desc}
]
}
match 查询:短语(模糊)匹配
multi_match (多词模糊匹配)
bool复合查询,合并多个查询条件 must,must_not,should,range
filter 结果过滤
term 精确匹配
aggregations聚合
get person/_search
{
“query”:{
“match_all”{}
},
“aggs”:{
“ageAgg”:{
“terms”:{ //terms查询年龄分布
“field”:“age”,
“size” :10
}
}
}
}
mapping 定义文档
put /my-inndex
{
“mapping” :{
“properties”:{
“age”:{“type”:“integer”},
“email”:{“type”:“keyword”}, --keyword定义只能精确查找
“name”:{“type”:“text”} --text分词查找
}
}
}
迁移数据
post _reindex
{
“source”:{
“index”:“from”
},
“dest”:{
“index”:“to”
}
}