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://192.168.110.14:9200/shopping
{
“acknowledged”: true, 響應結果
“shards_acknowledged”: true, 分片結果
“index”: “shopping” 索引名稱
}
再次添加相同的索引:報錯
檢視所有索引
http://192.168.110.14:9200/_cat/indices?v
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
{
“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
再次删除,索引不存在
操作文檔
建立文檔
{
“_index”: “shopping”,
“_type”: “phone”,
“_id”: “AXpa2or3t0FIJb8Na4mK”,
“_version”: 1,
“result”: “created”,
“_shards”: { 分片
“total”: 2, 總數
“successful”: 1,
“failed”: 0
},
“created”: true
}
未使用自定義的id,不支援put
自定義id
如果是自定義id,可以使用post和put請求,version發生變化。多次送出就是update
檢視文檔
http://192.168.110.14:9200/shopping/phone/1
{
“_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://192.168.110.14:9200/shopping/phone/1/_update
删除文檔
http://192.168.110.14:9200/shopping/phone/1
删除一個不存在的文檔
按照條件删除
post
http://192.168.110.14:9200/shopping/_delete_by_query
{
“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
}