目录
一、文档的基础操作
创建文档
与Mysql的表类似的结构如ELK里的文档,但ELK的文档却可不用创建直接生成。
注意,这里只能使用post不能使用put
但当我们为文档自定义id时post和put都可以使用,因为post支持幂等性和非幂等性的操作,put只支持幂等性的操作,而在没有自定义id的情况下,id是随机生成的,这照成了非幂等性。
获取文档
这里是通过id进行查询
全查询
文档更新
覆盖更新
字段更新
查询所有,可以看到字段已经改变
文档删除
二、文档的各种查询
ES的查询默认会将各个关键字进行分词生成倒排索引,所以当只有一个关键词时同样可以进行查询对应索引的文档。
1、条件查询
通过地址栏查询
通过请求体请求,推荐
通过match_all实现查询所有
2、分页查询
from为起始位置,size为往后的查询数目 。
3、过滤查询
_source里的为需要查询的字段。
4、排序查询
5、条件与、或、范围查询
must相当于mysql里的and
shoud相当于mysql里的or
6、完全关键词查询
7、设置高亮
设置高亮显示
highlight下对应fields下的字段进行查询时的高亮显示,也就是对特殊的内容进行样式的设定。
8、聚合查询
查询请求体
{
"aggs":{ //聚合操作
"price_group":{//组名称,随意起名
"terms":{//分组
"field":"price" //分组字段
}
}
},
"size":0
}
查询响应结果
{
"took": 13,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": null,
"hits": []
},
"aggregations": {
"price_group": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 7999,
"doc_count": 2
}
]
}
}
}