ES可视化工具Kibana简单操作
- 索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库
- 类型用于区分同一个索引下不同的数据类型,相当于关系型数据库中的表。在Elasticsearch中,我们使用相同类型(type)的文档表示相同的“事物”\
- 文档是ElasticSearch中存储的实体,类比关系型数据库,每个文档相当于数据库表中的一行数据
- Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
1. 建索引
创建索引,设置索引
PUT lib/
{
"settings":{
"index":{
"number_of_shards":3, //分片,建好了不能修改
"number_of_replicas":0 //备份数量
}
}
}
也可以直接创建索引,不写设置,使用系统默认设置
PUT lib2
2. 查看索引设置
GET lib2/_settings
注:_ 一般表示系统自定义的
3. 查看所有索引
GET _all/_settings
有了索引之后,可以添加文档
4. 添加文档(类似数据库中添加记录)
① 有文档的id时,添加文档
自定义文档的id时,用PUT方式
lib是索引,user是索引类型的名字,1是要添加的文档的id
PUT lib/user/1
{
"first_name":"Jane",
"last_name":"Smith",
"age":32
}
② 没有指定的id时,添加文档
此时,这个id由es自动生成,用POST方式
POST lib/user/
{
"first_name":"Sindy",
"last_name":"Fir",
"age":13
}
5. 查询文档
从哪个索引下哪个类型查询谁
① 查询全部
GET lib/user/_search
或者
GET lib/user/_search
{
"query": {
"match_all": {}
}
}
② 查询某条记录
GET lib/user/KAX1IHUBGfPpy-85QIyF
③ 查询文档部分信息
GET lib/user/KAX1IHUBGfPpy-85QIyF?_source=first_name,age
6. 查询数量
① 查询所有总数
GET ticket_business_index/_doc/_count
或者
GET ticket_business_index/_doc/_count
{
"query":{
"match_all": {}
}
}
GET ticket_business_index/_doc/_search
{
"query":{
"bool": {
"should": [
{
"match": {
"id": 98
}
},
{
"match": {
"id": 99
}
}
]
}
}
}
② 过滤条件
a. 单个条件过滤
GET ticket_business_index/_doc/_count
{
"query":{
"bool":{
"must":[{
"match": {
"channelName.keyword": "渠道08"
}
}]
}
}
}
b. 多个条件过滤
GET ticket_business_index/_doc/_search
{
"query":{
"bool":{
"must":[{
"match": {
"city.keyword": "商丘"
}
},
{
"match": {
"feeName.keyword": "资费14"
}
}]
}
},
"size":100
}
c. 时间过滤查询
GET ticket_business_index/_doc/_search
{
"query":{
"bool":{
"must":[{
"match": {
"city.keyword": "商丘"
}
}],
"filter": [
{
"range":{
"ticketCreateTime":{
"gte": 1601003569000,
"lte": 1602040369000
}
}
}
]
}
},
"size":100
}
d. 去重查询
GET lib/user/_search
{
"aggs": {
"uniq_streets": {
"cardinality": {
"field": "about.keyword"
}
}
}
}
7. 修改文档
① 用新的文档把以前的覆盖掉
用PUT方式
PUT lib/user/1
{
"first_name":"Mary",
"last_name":"Fir",
"age":15
}
② 直接更新
用POST方式
POST lib/user/1/_update
{
"doc":{
"age":14
}
}
索引名/索引类型type/文档id
POST indexvoice_test_cqdxwh/doc/20220322006/_update
{
"doc":{
"qualityScore":55
}
}
8. 删除文档
DELETE lib/user/1
9. 删除索引
DELETE lib2
10. 删除一个索引下所有的记录
POST lib/_delete_by_query
{
"query":{
"match_all": {}
}
}