这篇来介绍关於Elastic on cloud的农具好了,关於Elastic专有名词说文解字:基本操作篇(上)索引(index)与资料(doc)的增删改查(CURD)

最近跟许多部门的同事聊天,希望可以稍微也理解一下别的领域的专业跟探听各种小道消息
最近真是被on Cloud这东西搞得很头大GCP,AWS各种云服务
身爲只会略懂操作linux的小农来说,那完全是片森林
东西好像有点多,又有点千篇一律,但又各有巧妙
坑也不像程序那样显而易见,往往都是真的运作了,请求多起来时才发现

出大事惹~

码农决定是否学一个东西主要着重在lib本身稳定与社群大小
以及是否好维护足以快速叠代需求
运维则是关心於图表,数据,能够在不影响运作的情况下给与多少目前的资讯
并在神不知鬼不觉的情况下完成所有的问题排错,标准的没出事就是好事

与不同的部门交流可以学习到不同面向的东西,原本前端後来开发後端
更能明白接口怎麽开对前端来说是好做的

套句我主管说的,接口可以後端先定义,前端做了不舒服可以讨论来改
重点是"讨论"~

会去关心理解需求与业务帮助公司赚钱的工程师才能提升思维与视野而且少做工呢~

点我看原文~

那麽今天的正篇开始罗~真是就算拆了上下篇也是肯定爆字的标题呢

今天请爱用ctrl(cmd)+f, talk is cheap show you code

资料想像请沿用之前连接spring boot的简写到剩下name

1. 首先先来写写索引(index)的CRUD

1.1. 新增索引Insert

一般很多公司会直接写个指令集将所有.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"
                }
            }
        }
    }
}

1.2. 删除索引

这里的删除索引几乎等於mysql 的 drop table请慎用,资料不见会跑路的

DELETE /it_help

1.3 修改索引

// 修改设定:修改副本数
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"
    }
  }
}

1.4. 查询索引

//查询
GET /it_help
//查询所有索引(_cat可以查询某个类下所有目录)
GET /_cat/indices

2. 资料(_doc)的CRUD...D可能下篇再详细写

2.1. 新增资料

资料新增有三种,指定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"
}

2.2. 删除资料

//根据id,删除单个数据
DELETE /it_help/_doc/{id}

//根据查询删除
POST it_help/_delete_by_query
{
  "query": { 
    "match": {
     "name": "f2e zoe"
    }
  }
}

2.3. 更新资料

依据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"
    }
  }
}

2.4. 简单资料查询...下篇在写详细的,写到这已经快失智( º﹃º )

// 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但也是功德无量了
回去加班拉,变天了,感冒+加班+铁人赛_(┐「﹃゚。)_
顶扣扣

此篇参考资料~


对於文章中的任何用词与专业字或都可以在下面留言提问

梗图看不懂也行

蔽农会带着谦卑爲怀的心情竭尽所能回覆与说明的


<<:  SSH 进 GCP的3种方式

>>:  Day27|脸部保养

Day 14 - 神经网络(D)NN 到 卷积神经网络CNN (1)

由标准神经网络NN 到 深度神经网络DNN 复习一下前几天谈的输入层-隐藏层-输出层。 标准神经网络...

EP 28 - [Ruby on Rails] 付款非同步通知

Youtube 频道:https://www.youtube.com/c/kaochenlong ...

Day-11 LinearLayout

何谓布局?布局就是版面配置,而就如同制作公告栏一样,有着不同的排版方式。 接下来我会对LinearL...

[Day02] 网站基本架构

一个网站可以非常复杂也可以非常简单。大型电商网站每个功能都有特化的设计跟架构,安全性、高并发交易、快...