Elasticsearch学习记录(基本概念用法)
1.倒排索引
-
概念
对文档内容分词,对分词后的词条创建索引,并记录词条所在文档的id。查询时先根据词条查询到文档id,而后根据文档id查询文档。 -
组成
文档:每条数据就是一个文档(同时会像数据库一样为id建立索引)。
词条:文档按照语义分成的词语。 -
图示
不仅会为文档的id建立索引,分词后,还会给词条建立索引。 -
搜索方式
-
-
对比正向索引
正向索引基于文档id创建索引。根据id查询快,但是查询词条时必须先找到文档,而后判断是否包含词条。
2. 索引库基本概念
- 图示
3.索引库操作
-
创建索引库
PUT /索引库名 -
查询索引库
GET /索引库名 -
删除索引库
DELETE /索引库名 -
添加字段
PUT /索引库名/_mapping -
注意
ES不支持修改索引库,只能向索引库添加字段
4.文档操作
-
创建文档
POST /索引库名/_doc/文档id -
查询文档
GET /索引库名/_doc/文档id -
删除文档
DELETE /索引库名/_doc/文档id -
全量修改文档
PUT /索引库名/_doc/文档id- 全量修改是先删除再新增
-
增量修改文档
POST /索引库名/_uodate/文档id {"doc":{字段}}- 增量修改是修改某个字段值
-
批量删除
POST /_bulk {"delete": {"_index":"mall", "_id": "3"}}{"delete": {"_index":"mall", "_id": "4"}} -
批量修改
POST /_bulk{"update": {"_index":"mall", "_id": "4"}}{"doc": {"email": "Zhangsan@it163.cn"}} -
批量新增
POST /_bulk {"index": {"_index":"mall", "_id": "3"}}{"info": "C++教学导师", "email": "ww@it163.cn", "name":{"firstName": "五", "lastName":"王"}} {"index": {"_index":"mall", "_id": "4"}}{"info": "Java教学导师", "email": "zhangsan@it163.cn", "name":{"firstName": "三", "lastName":"张"}}