Elasticsearch 实践一:初识
快速搭建测试环境
window下部署ELK(6.2.2系列)
基础知识
基本认知
索引(index):类似于传统关系数据库中的一个数据库; 复数词为 indices 或 indexes 类型(type):类似于传统关系数据库中的一个表 文档(docuemnt):类似于传统关系数据库中的表中的一行数据 倒排索引: 关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。默认的,一个文档中的每一个属性都是 被索引 的(有一个倒排索引)和可搜索的。一个没有倒排索引的属性是不能被搜索到的 **Elasticsearch 开放的restful api接口通信,所以理论任何语言都可以接入**
分析和过滤器认知
# 字符过滤器 首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。一个字符过滤器可以用来去掉HTML,或者将 & 转化成 `and`。 # 分词器(分析器) 其次,字符串被 分词器 分为单个的词条或词语。一个简单的分词器遇到空格和标点的时候,可能会将文本拆分成词条。 # Token 过滤器 最后,词条按顺序通过每个 token 过滤器 。这个过程可能会改变词条(例如,小写化 Quick ),删除词条(例如, 像 a`, `and`, `the 等无用词),或者增加词条(例如,像 jump 和 leap 这种同义词)。 Elasticsearch提供了开箱即用的字符过滤器、分词器和token过滤器
Curl请求
curl -i -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' -i: 打印返回的头部信息 VERB: HTTP方法 : `GET`、 `POST`、 `PUT`、 `HEAD 或者 `DELETE` -d: 请求提内容<BODY>
学习笔记
创建索引
# 创建megacorp索引,分配3封主分配,每个主分片分配1个副本,这里总的是6个分片(3主3副), 后面章节我们会简单介绍es集群知识 PUT /megacorp { "settings" : { "number_of_shards" : 3, "number_of_replicas" : 1 } }
直接提供id方式索引一个文档
# PUT 索引/类型/id PUT /megacorp/employee/1 { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] } PUT /megacorp/employee/2 { "first_name" : "Jane", "last_name" : "Smith", "age" : 32, "about" : "I like to collect rock albums", "interests": [ "music" ] } PUT /megacorp/employee/3 { "first_name" : "Douglas", "last_name" : "Fir", "age" : 35, "about": "I like to build cabinets", "interests": [ "forestry" ] }
基本的查询
# GET 索引/类型/id GET /megacorp/employee/1 # GET 索引/类型/_search GET /megacorp/employee/_search # 增加搜索参数q GET /megacorp/employee/_search?q=last_name:Smith # _all表示所有索引里查询 # 查询在 tweet 类型中 tweet 字段包含 elasticsearch 单词的所有文档 GET /_all/employee/_search?q=tweet:elasticsearch # name 字段中包含 john 并且在 tweet 字段中包含 mary 的文档 GET /_all/employee/_search?q=+name:john +tweet:mary # /_search?q=%2Bname%3Ajohn+%2Btweet%3Amary # (name 字段中包含 mary 或者 john )(date 值大于 2014-09-10) (_all_ 字段包含 aggregations 或者 geo) GET /_all/employee/_search?q=+name:(mary john) +date:>2014-09-10 +(aggregations geo) # 搜索返回包含 mary 的所有文档 GET /_search?q=mary # 查询表达式查询(查询体) GET /megacorp/employee/_search { "query" : { "match" : { "about" : "rock albums" } }, "highlight": { "fields" : { "about" : {} } } } # 查询索引下的类型所有和细节 GET /megacorp/_mapping?pretty=true
基本的删除操作
# 删除文档 DELETE /megacorp/employee/1 # 删除索引 DELETE /megacorp
相关推荐
明瞳 2020-08-19
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。
sifeimeng 2020-08-03
心丨悦 2020-08-03
李玉志 2020-07-26
tigercn 2020-07-19
李玉志 2020-07-04
mengyue 2020-06-27
AFei00 2020-08-03
sifeimeng 2020-08-01
vtnews 2020-07-29
newbornzhao 2020-09-14
做对一件事很重要 2020-09-07
renjinlong 2020-09-03
李玉志 2020-08-19
mengyue 2020-08-07
molong0 2020-08-06
molong0 2020-08-03