初识elasticsearch
什么是elasticsearch? :
一个开源的分部署搜索引擎、可以用来实现搜索、日志统计、分析、系统监控等功能。
什么是文档和词条?
- 每一条数据就是一个文档
- 对文档中的内容进行分词,得到的词语就是词条
什么是正向索引?
- 基于文档id创建索引。查询词条时必须先找到文档,而后判断是否含词条
什么是倒排索引?
- 对文档内容分词,对词条创建索引,并记录词条所在的文档信息。查询时现根据词条查询文档id,而后获取文档。
ES的安装
链接:ES的安装和配置
ES与MySQL的对比
mapping
mapping即映射是索引中文档的约束,类似于数据库的表结构。
常见的属性
- type:数据类型
- index:是否创建索引(即倒排索引)
- analyzer:分词器
- properties:子字段
常见的type类型
- **字符串:text:可以被分词的、keyword:不能被分词的,比如品牌名、ip、邮箱等等
- 数字:long、integer、short、byte、double、float
- 布尔:boolean
- 日期:date
- 对象:object
索引库的操作
索引是文档的集合,相当于数据库的表。
-
创建索引库:
PUT /索引库名
-
查询索引库:
GET /索引库名
-
删除索引库:
DELETE /索引库名
-
添加字段:
PUT /索引库名/_mapping
,只能添加字段,如果修改字段会报错。
文档操作
文档就是数据,相当于数据库的行。
-
创建文档:
POST /索引库名/_doc/文档id
-
查询文档:
GET /索引库名/_doc/文档id
-
删除文档:
DELETE /索引库名/_doc/文档id
-
全量修改:
PUT /索引库名/_doc/文档id
,会先如果该文档存在那么会删除旧的文档,然后新增,否则旧直接新增。
-
增量修改:
POST //索引库名/_doc/文档id {"doc":{字段}}