其他要点
1. 索引中的主分片数在创建索引时是固定的,但副本分片的数量可以随时更改,而不会中断索引或查询操作。
2. 需要JRE 最低1.8, 安装elasticsearch包前需要配置JAVA_HOME环境变量
3. shard分片,primary 和replicas, 副本表示主分片的副本数(不含主)
- 默认情况下,从索引/更新/删除数据到搜索结果中显示的时间,可能会有一秒钟的延迟(刷新间隔)。
常用查询
1. 查询列表
curl 127.0.0.1:9200/_cat
显示字段:?v
格式化输出: ?pretty
curl -i 打印响应头, -v 打印请求和响应头
2. 查询集群状态
curl 10.10.7.151:9200/_cat/health?v
- 绿色 - 一切都很好(集群功能齐全)
- 黄色 - 所有数据都可用,但尚未分配一些副本(群集功能齐全)
- 红色 - 某些数据由于某种原因不可用(群集部分功能)
[图片上传失败...(image-d10858-1564654185186)]
3. 查看节点状态
curl 10.10.7.151:9200/_cat/nodes?v
[图片上传失败...(image-e948d3-1564654185186)]
4. 查看索引
curl 10.10.7.151:9200/_cat/indices?v
[图片上传失败...(image-11af45-1564654185185)]
curl -XGET http://10.10.7.151:9200/mos-master_zone/_settings ?pretty
[图片上传失败...(image-423545-1564654185185)]
5. 查看分片
curl 10.10.7.151:9200/_cat/shards?v
[图片上传失败...(image-a35cd5-1564654185185)]
常用DSL
1. 查询指定条数结果,排序
curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
{ "query": {"match_all": {} },
"sort": [ { "postDate": "asc"}],
"from":0,
"size":10
}'
[图片上传失败...(image-51a74c-1564654185185)]
2. match_all查询指定字段
curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
{ "query": {"match_all": {} },
"_source":["user", "postDate", "endpoint"]
}'
[图片上传失败...(image-3f26d1-1564654185184)]
3. match查询指定条件
查询postDate 为 2019-07-23的文档, 能查到相关的并打分
curl -XGET -H "Content-Type: application/json" localhost:9200/wakesy_test/_search?pretty -d '
{ "query": {"match": {"postDate":"2019-07-23"}}
}'
查询address 包含mill 或者lane的文档
{
"query": { "match": { "address": "mill lane" } }
}
查询address 为 完整字符串 "mill lane"的文档
···
{
"query": { "match_phrase": { "address": "mill lane" } }
}
···
查询address 同时包含mill和lane, bool must 表示与
···
{
"query": {
"bool": {
"must": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
] } }
}
···
查询address 包含mill或者lane, bool should 表示或
···
{
"query": {
"bool": {
"should": [
{ "match": { "address": "mill" } },
{ "match": { "address": "lane" } }
] } }
}
···
同时使用must和must_not
{
"query": {
"bool": {
"must": [
{ "match": { "age": "40" } }
],
"must_not": [
{ "match": { "state": "ID" } }
] } }
}
过滤语句filter
查询余额balance 大于20000小于30000的文档
{
"query": {
"bool": {
"must": { "match_all": {} },
"filter": {
"range": {
"balance": {
"gte": 20000,
"lte": 30000
}
}
}
}
}
}
查询分词器效果
···
curl -X POST "localhost:9200/_analyze" -H 'Content-Type: application/json' -d'
{"tokenizer": "keyword",
"text": "BIG.JPG"}'
分词器
standard: 默认逐个分词
ik_max_word: ik尽可能多分词
ik_smart: 尽可能少分词
···
查询索引详情
curl localhost:9200/mos-data_zone/_stats?pretty
curl localhost:9200/_cluster/stats?pretty
curl localhost:9200/_nodes/stats?pretty
网友评论