天天看點

http操作es

http操作es

    • 測試es服務
    • 操作索引
      • 建立索引
      • 檢視所有索引
      • 檢視索引:
      • 删除索引
    • 操作文檔
      • 建立文檔
        • 未使用自定義的id,不支援put
        • 自定義id
        • 如果是自定義id,可以使用post和put請求,version發生變化。多次送出就是update
      • 檢視文檔
      • 修改文檔
      • 修改單個字段:局部更新
      • 删除文檔
      • 删除一個不存在的文檔
      • 按照條件删除
    • mappings 設定
    • 查詢
      • 1)查詢全部
      • 2)比對查詢
      • 3)字段比對查詢
      • 4)關鍵字精準查詢 ,類似于 "="
      • 5)多關鍵字精準查詢
      • 6)查詢指定字段
      • 7)過濾字段
      • 8)組合查詢
      • 9) 查詢範圍
      • 10) 模糊查詢
      • 11) 單個字段排序
      • 12)多個字段排序
      • 13)高亮顯示
      • 14) 分頁查詢
      • 15) 聚合查詢
        • 最大
        • 最小
        • 平均
        • 求和
        • 個數
        • 去重後求和
        • 一下子傳回 max min avg count sum
      • 16) 桶聚合查詢 分組

測試es服務

http操作es

操作索引

建立索引

http://192.168.110.14:9200/shopping

http操作es

{

“acknowledged”: true, 響應結果

“shards_acknowledged”: true, 分片結果

“index”: “shopping” 索引名稱

}

再次添加相同的索引:報錯

http操作es

檢視所有索引

http://192.168.110.14:9200/_cat/indices?v

http操作es

health:目前伺服器健康狀态:green(叢集完整) yellow(單點正常、叢集不完整) red(單點不正常)

status:索引打開、關閉狀态

index:索引名

uuid:索引統一編号

pri :主分片數量

rep 副本數量

docs.count 可用文檔數量

docs.deleted 文檔删除狀态(邏輯删除)

store.size 主分片和副分片整體占空間大小

pri.store.size 主分片占空間大小

檢視索引:

http://192.168.110.14:9200/shopping

http操作es

{

“shopping”: { 索引名稱

“aliases”: {}, 别名

“mappings”: {}, 映射

“settings”: { 設定

“index”: { 索引

“creation_date”: “1625020090820”, 建立時間

“number_of_shards”: “5”, 主分片數量

“number_of_replicas”: “1”, 副分片數量

“uuid”: “Jnmea8sgRfikz77XlqkHaw”, 索引uuid 唯一性辨別

“version”: { 索引版本

“created”: “5060999”

},

“provided_name”: “shopping” 索引名稱

}

}

}

}

删除索引

http://192.168.110.14:9200/shopping

http操作es

再次删除,索引不存在

http操作es

操作文檔

建立文檔

http操作es

{

“_index”: “shopping”,

“_type”: “phone”,

“_id”: “AXpa2or3t0FIJb8Na4mK”,

“_version”: 1,

“result”: “created”,

“_shards”: { 分片

“total”: 2, 總數

“successful”: 1,

“failed”: 0

},

“created”: true

}

未使用自定義的id,不支援put

http操作es

自定義id

http操作es

如果是自定義id,可以使用post和put請求,version發生變化。多次送出就是update

http操作es

檢視文檔

http://192.168.110.14:9200/shopping/phone/1

http操作es

{

“_index”: “shopping”,

“_type”: “phone”,

“_id”: “1”,

“_version”: 6,

“found”: true, 查詢結果,true表示找到了,false表示未找到

“_source”: { 文檔源資訊

“title”: “小米手機222”,

“category”: “小米”,

“images”: “http://www.gulixueyuan.com/xm.jpg”,

“price”: 1999.00

}

}

修改文檔

post或者put

http操作es

修改單個字段:局部更新

http://192.168.110.14:9200/shopping/phone/1/_update

http操作es

删除文檔

http://192.168.110.14:9200/shopping/phone/1

http操作es

删除一個不存在的文檔

http操作es

按照條件删除

post

http://192.168.110.14:9200/shopping/_delete_by_query

http操作es

{

“took”: 118, 耗時

“timed_out”: false, 是否逾時

“total”: 4, 總數

“deleted”: 4, 删除數量

“batches”: 1,

“version_conflicts”: 0,

“noops”: 0,

“retries”: {

“bulk”: 0,

“search”: 0

},

“throttled_millis”: 0,

“requests_per_second”: -1.0,

“throttled_until_millis”: 0,

“failures”: []

}

mappings 設定

使用put請求建立映射

http://192.168.110.14:9200/student/_mapping

{

“properties”:{

“name”:{ – 字段名稱

“type”:“text”, – 字段類型

“index”:true

},

“sex”:{

“type”:“text”,

“index”:false

},

“age”:{

“type”:“long”,

“index”:false

}

}

}

1)字段類型 有哪些?

String 字元串類型

text: 可分詞

keyword: 關鍵字 不可分詞

Numerical 數值類型

基本類型:byte short int long double float

浮點數的高進度類型:scaled_float

Date 日期類型

Array 數組類型

Object 對象類型

2)定義中的index?

index 表示是否索引。預設是true,該字段會被索引到,能夠進行搜尋;false 表示不能被搜尋到

3)store 是否将資料進行獨立存儲,預設是false

原始的文本會存儲到_source,預設情況下 ,其他提取出來的字段都不是獨立存儲的,是從_source裡面

提取出來的.當然你也可以獨立的存儲某個字段,隻要設定"store":true即可,擷取獨立存儲的字段

要比從_source中解析出來快得多,但是也會占用更多的空間,是以要更具業務需要來設定

4)analyzer: 分詞器,這裡的ik_max_word 及使用ik分詞器

查詢

get http://192.168.110.14:9200/shopping/_search

1)查詢全部

{
	"query":{
		"mach_all":{
			
		}
	}
}
           

2)比對查詢

{
	"query":{
		"mach":{
			"name":"張三"
		}
	}
}
           

3)字段比對查詢

在多個字段上進行查詢

{
	"query":{
		"multi_mach":{
			"name":"張三",
			"fields":["name","nickname"]
		}
	}
}
           

4)關鍵字精準查詢 ,類似于 “=”

{
	"query":{
		"trrm":{
			"name":"張三"
		}
	}
}
           

5)多關鍵字精準查詢

{
	"query":{
		"trrms":{
			"name":["張三","lisi"]
		}
	}
}
           

6)查詢指定字段

{
	"_source":["name","age"]
	"query":{
		"trrm":{
			"name":"張三"
		}
	}
}
           

7)過濾字段

includes 包含
excludes 不包含
{
	"_source":{
		"includes":["name","age"],
		"excludes":["sex"]
	}
	"query":{
		"trrm":{
			"name":"張三"
		}
	}
}
           

8)組合查詢

bool  must must_not should
{
	"query":{
		"bool":{
			"must":{
				"sex":"男"
			},
			"must_not":{
				"age":"40"
			},
			"should":{
				"name":"張"
			}
		}
	}
}
           

9) 查詢範圍

gt 大于>
gte 大于等于>=
lt 小于<
lte 小于等于<=
{
	"query":{
		"range":{
			"age":{
				"gt":10,
				"lt":50
			}
		}
	}
}
           

10) 模糊查詢

fuzzy 類似于 like

fuzziness 指定距離

{
	"query":{
		"fuzzy":{
			"name":"si",
			"fuzziness":2
		},
		
	}
}
           

11) 單個字段排序

{
	"query":{
		"mach":{
			"name":"張三"
		}
	},
	"sort":[
		"age":{
			"order":desc
		}
	]
}
           

12)多個字段排序

{
	"query":{
		"mach_all":{}
	},
	"sort":[
		"age":{
			"order":desc
		},
		"_source":{
			"order":desc
		}
	]
}
           

13)高亮顯示

{
	"query":{
		"mach_all":{}
	},
	"highlight":{
		"pre_tags": "<font color='red'>",
		"post_tags":"</font>"
		"fields":{
			"name":{
				
			}
		}
	}
}
           

14) 分頁查詢

{
	"query":{
		"mach_all":{}
	},
	"sort":[
		"age":{
			"order":desc
		}
	],
	"from":0
	"size":5
}
           

15) 聚合查詢

最大

{
	"aggs":{
		"max_age":{
			"max":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

最小

{
	"aggs":{
		"min_age":{
			"min":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

平均

{
	"aggs":{
		"avg_age":{
			"avg":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

求和

{
	"aggs":{
		"sum_age":{
			"sum":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

個數

{
	"aggs":{
		"sum_age":{
			"sum":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

去重後求和

{
	"aggs":{
		"distinct_age":{
			"cardinality":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

一下子傳回 max min avg count sum

{
	"aggs":{
		"seats_age":{
			"seats":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

16) 桶聚合查詢 分組

{
	"aggs":{
		"age_groupby":{
			"terms":{
				"fields":"age"
			}
		}
	},
	"size":0
}
           

繼續閱讀