最近跟許多部門的同事聊天,希望可以稍微也理解一下別的領域的專業跟探聽各種小道消息
最近真是被on Cloud這東西搞得很頭大GCP,AWS各種雲服務
身爲只會略懂操作linux的小農來說,那完全是片森林
東西好像有點多,又有點千篇一律,但又各有巧妙
坑也不像程式那樣顯而易見,往往都是真的運作了,請求多起來時才發現
碼農決定是否學一個東西主要著重在lib本身穩定與社群大小
以及是否好維護足以快速叠代需求
運維則是關心於圖表,數據,能夠在不影響運作的情況下給與多少目前的資訊
並在神不知鬼不覺的情況下完成所有的問題排錯,標準的沒出事就是好事
與不同的部門交流可以學習到不同面向的東西,原本前端後來開發後端
更能明白接口怎麽開對前端來說是好做的
套句我主管說的,接口可以後端先定義,前端做了不舒服可以討論來改
重點是"討論"~
一般很多公司會直接寫個指令集將所有.template直接寫入本機ES開始開發
就可以少裝很多套件
# 創建索引名為 it_help 的索引
//因爲是給人看json加個pettery
PUT _template/it_help?pretty
{
//創建index_patterns
"index_patterns": ["it*"],
// 對於it_help這個索引的設置
"settings": {
"index": {
"number_of_shards": 3, // 分片數量設置為3,預設為5
"number_of_replicas": 3 // 副本數量設置為3,預設為1
}
},
//創建index別名
"aliases": {
"{index}_alias":{}
},
// 對於it_help映射配置(又名數據建模或資料建模)
"mappings": {
"_doc": {
"dynamic": false, // 動態映射配置
// 字段屬性配置
"properties": {
// 表示字串id,類型為integer
"id": {
"type": "integer"
},
"name": {
"type": "text",
"analyzer": "jieba-analysis", // javam用繁體存儲時的分詞器
},
"createAt": {
"type": "date"
}
}
}
}
}
這裏的刪除索引幾乎等於mysql 的 drop table請慎用,資料不見會跑路的
DELETE /it_help
// 修改設定:修改副本數
PUT /it_help/_settings
{
"index" : {
"number_of_replicas" : 2
}
}
// 修改設定:修改分片刷新時間,預設為1s(ES本身寫入很慢,分片刷新後才能在下指令查到)
PUT /it_help/_settings
{
"index" : {
"refresh_interval" : "2s"
}
}
// 修改模板:新增字段 age
PUT /it_help/_mapping/_doc
{
"properties": {
"age": {
"type": "integer"
}
}
}
//查詢
GET /it_help
//查詢所有索引(_cat可以查詢某個類下所有目錄)
GET /_cat/indices
資料新增有三種,指定id,ES幫你指定ID,指定ES怎麽幫你指定ID
第三個有點抽象且高概率可能會報error小弟本身並沒有用過
這東西從官網來看似乎都是處理資料同步問題時使用
參考資料~附上~
// 新增單條數據,並指定es的id 為 1
PUT /it_help/_doc/{id}?pretty
{
"name": "java tom"
}
// 新增單條數據,使用ES自動生成id
POST /it_help/_doc?pretty
{
"name": "java tomas"
}
// 使用 op_type 屬性,強制執行某種操作
PUT it_help/_doc/{id}?op_type=create
{
"name": "f2e zoe"
}
//根據id,刪除單個數據
DELETE /it_help/_doc/{id}
//根據查詢刪除
POST it_help/_delete_by_query
{
"query": {
"match": {
"name": "f2e zoe"
}
}
}
依據Restful修改單條數據,修改語句和新增語句相同,根據ID,存在更新;不存在新增
PUT /it_help/_doc/{id}?pretty
{
"name": "app android"
}
// 根據查詢條件name=java jacky,修改name="更新後的name"
(版本沖突而不會導致_update_by_query 中止)
POST /it_help/_update_by_query
{
"script": {
"source": "ctx._source.name = params.name",
"lang": "painless",
"params":{
"name":"java jacky2"
}
},
"query": {
"term": {
"name": "java jacky"
}
}
}
// 1.根據id,獲取單個數據
GET /it_help/_doc/1
// 2.獲取索引下的所有數據
GET /it_help/_doc/_search
// 3.簡單單一查詢
GET /it_help/_doc/_search
{
"query": {
"match": {
"name": "java jacky2"
}
}
}
好咧,超難找的文章
一篇之內template跟index的增刪改查完成了
被判都沒寫oncloud但也是功德無量了
回去加班拉,變天了,感冒+加班+鐵人賽_(┐「﹃゚。)_
頂扣扣