verbose:顯示列名, 請求參數為v
示例: curl localhost:9200/_cat/master?v
help:顯示當前命令的各列含義, 請求參數為help. 某些命令部分列默認不顯示,可通過help該命令可顯示的所有列
示例: curl localhost:9200/_cat/master?help
bytes: 數值列以指定單位顯示, 默認轉為以kb/mb/gb表示
示例: curl localhost:9200/_cat/indices?bytes=b
header:顯示指定列的信息,請求參數為h
查看各index的segment詳細信息,包括segment名, 所屬shard, 內存/磁盤占用大小, 是否刷盤, 是否merge為compound文件等. 可以查看指定index的segment信息(/_cat/segments/${index})
實例: curl localhost:9200/_cat/segments/new_index_20210621?v
查看集群中所有index的詳細信息,包括index狀態,shard個數(primary/replica),doc個數等,可參考help. 可以查看指定index的信息(/_cat/indices/${index})
示例: curl localhost:9200/_cat/indices?v
查看集群中所有alias信息,包括alias對應的index, 路由配置等. 可以查看指定alias的信息(/_cat/aliases/${alias})
先給索引創建個別名: curl -XPUT localhost:9200/new_index_20210618/_alias/a1?pretty
示例: curl localhost:9200/_cat/aliases?v
查看各shard的詳細情況,包括shard的分布, 當前狀態(對于分配失敗的shard會有失敗原因), doc數量, 磁盤占用情況, shard的訪問情況(如所有get請求的成功/失敗次數以及對應耗時等). 可以指定index只查看某個index的shard信息(/_cat/shards/${index})
示例: curl localhost:9200/_cat/shards?v
查看單節點的shard分配整體情況
示例: curl localhost:9200/_cat/allocation?v
查看單節點的自定義屬性
示例: curl localhost:9200/_cat/nodeattrs?v
查看集群當前狀態, 包括data節點個數,primary shard個數等基本信息
示例: curl localhost:9200/_cat/health?v
查看集群各個節點的當前狀態, 包括節點的物理參數(包括os/jdk版本, uptime, 當前mem/disk/fd使用情況等), 請求訪問情況(如search/index成功和失敗的次數)等詳細信息
示例: curl localhost:9200/_cat/nodes?v
查看集群中的master節點
示例: curl localhost:9200/_cat/master?v
查看當前集群各個節點的fielddata內存使用情況,默認是關閉的
查看當前集群的doc數量; 也可顯示指定index的doc數量,格式為/_cat/count/${index}
示例: curl localhost:9200/_cat/count/new_index_20210618?v
查看當前集群的pending task(等待事件),測試環境沒業務
查看集群各個節點上的plugin(插件)信息,測試環境沒有安裝插件
示例: curl localhost:9200/_cat/plugins?v
1. 查詢es中所有索引,所有已存在的索引
curl localhost:9200/_cat/indices?v
▼▼▼
curl -H"Content-Type: application/json" -XPUT localhost:9200/new_index_20210618?pretty -d{
"settings":{
"number_of_replicas":3,
"number_of_shards":9
},
"mappings": {
"user": {
"properties": {
"name": {
"type":"text"
},
"age":{
"type":"integer"
},
"profession":{
"type":"text"
}
}
}
}
}
出現這個的原因是,elasticsearch7默認不在支持指定索引類型,默認索引類型是_doc,如果想改變,則配置include_type_name: true 即可(官方文檔說,無論是否可行,建議不要這么做,因為elasticsearch8后就不在提供該字段)。
https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html
所以在Elasticsearch7中應該這么創建索引,也可創建索引后再修改mapping(pretty輸出結果已json形式輸出)
▼▼▼
curl -H"Content-Type: application/json" -XPUT localhost:9200/new_index_20210618?pretty -d{
"settings":{
"number_of_replicas":3,
"number_of_shards":9
},
"mappings": {
"properties": {
"name": {
"type":"text"
},
"age":{
"type":"integer"
},
"profession":{
"type":"text"
}
}
}
}
示例: curl -XDELETE localhost:9200/new_text_202106018?pretty
4. 索引重命名,ES不支持索引重命名,只能將原索引復制到新索引
▼▼▼
curl -H"Content-Type: application/json" -XPOST localhost:9200/_reindex -d{
"source": {
"index": "new_index_20210621"
},
"dest": {
"index": "new_index_20210618"
}
}
5. 開啟關閉索引,索引關閉后只能查看索引配置信息,不能對索引的數據進行讀寫操作
關閉:
curl -H "Content-Type: application/json" -XPOST localhost:9200/test1/_close?pretty
開啟:
curl -H "Content-Type: application/json" -XPOST localhost:9200/test1/_open?pretty
1.查詢索引的mappings(映射,相當于數據庫的表結構)
curl -XGET localhost:9200/test1/_mappings?pretty
2. 修改索引的mapping,添加Createtime字段字段類型是date(*ES mapping在建好之后不可以更改字段類型,也不支持刪除)
curl -H "Content-Type: application/json" -XPUT localhost:9200/test1/_mapping?pretty -d{"properties":{"name":{"type":"text"},"age":{"type":"text"},"profession":{"type":"text"},"Createtime":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"}}}
1.創建新的索引庫test2
curl -XPUT localhost:9200/test2?pretty
2.像新建的test2索引庫中插入一條數據
數據插入后會自動生成mapping,字段類型默認為text,時間字段類型為date
curl -H "Content-Type: application/json" -XPUT localhost:9200/test2/_doc/1?pretty -d {"name":"張三","age":"23","profession":"法外狂徒","Createtime":"2021-06-25"}
3. 查詢新插入的數據
curl -XGET localhost:9200/test2/_doc/1?pretty
4. 修改數據,每修改一次_version加1
curl -H "Content-Type: application/json" -XPUT localhost:9200/test2/_doc/1?pretty -d {"name":"張三更新","age":"230"}
即使用相同的新增命令操作相同的ID,數據不同
或者使用_update更新數據
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_doc/1/_update?pretty -d {"doc":{"name":"張三更新","age":"2300"}}
5. 使用簡單的腳本修改數據
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_doc/1/_update?pretty -d {"script" : "ctx._source.age += 5"}
6. 根據ID刪除數據
curl -XDELETE localhost:9200/test2/_doc/1?pretty
7. _bukl命令批量操作
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_doc/_bulk?pretty -d
{"update":{"_id":"1"}}
{"doc": {"name":"趙思妹妹","age":"25"}}
{"update":{"_id":"2"}}
{"doc":{"name":"錢老板","age":"50"}}
{"delete":{"_id":"3"}}
{"index":{"_id":"4"}}
{"name":"尼古拉斯","age":"1200"}
創建test.json文件,確保ES用戶有讀取該文件的權限。
▼▼▼
Vi test.json
{"index":{"_id":"10"}}
{"name":"張三10","age":10}
{"index":{"_id":"11"}}
{"name":"張三11","age":11}
{"index":{"_id":12}}
{"name":"張三12","age":12}
{"index":{"_id":"13"}}
{"name":"張三13","age":13}
{"index":{"_id":"14"}}
{"name":"張三14","age":14}
{"index":{"_id":15}}
{"name":"張三15","age":15}
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_doc/_bulk?pretty --data-binary @/home/test.json
查看索引文檔數為9,增加了5個
1. 查詢某個索引中的所有數據
curl -H "Content-Type: application/json" -XGET localhost:9200/new_index_20210621/_search?pretty -d {"query":{ "match_all":{}}}
2. 查詢某個索引中的2條數據
(如果不指定size,默認返回10條,按照ID排序)
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"match_all":{
}
},
"size":2
}
3. 查詢某個索引中的2條數據,從第二條數據開始
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"match_all":{
}
},
"from":2,
"size":2
}
4. 查詢的部分字段,只返回name和age列
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"match_all":{
}
},
"_source":[
"name",
"age"
],
"size":2
}
5. 條件匹配查詢,查詢age=10的數據
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"match":{
"age":10
}
}
}
and查詢,必須同時滿足age=10,name中包含“張三”
must表示所有查詢必須都為真才被認為匹配
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"bool":{
"must":[
{
"match":{
"age":10
}
},
{
"match":{
"name":"張三"
}
}
]
}
}
}
7. 布爾查詢bool
or查詢 age=10 或者 name中包含“張三” 滿足其中一項就可以
should 表示查詢列表中只要有任何一個為真則認為匹配
▼▼▼
curl -H "Content-Type: application/json" -XPOST localhost:9200/test2/_search?pretty -d
{
"query":{
"bool":{
"should":[
{
"match":{
"age":10
}
},
{
"match":{
"name":"張三"
}
}
]
}
}
}
相關閱讀:
蔡素,公眾號:IT那活兒Elastic search 集群搭建
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129827.html
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...
摘要:一般來說,聲明式編程關注于發生了啥,而命令式則同時關注與咋發生的。聲明式編程可以較好地解決這個問題,剛才提到的比較麻煩的元素選擇這個動作可以交托給框架或者庫區處理,這樣就能讓開發者專注于發生了啥,這里推薦一波與。 本文翻譯自FreeCodeCamp的from-zero-to-front-end-hero-part。 繼續譯者的廢話,這篇文章是前端攻略-從路人甲到英雄無敵的下半部分,在...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3594·2023-01-11 13:20