Mapping映射属性
mapping是对索引库中文档的约束,常见的mapping属性包括:
- type:字段数据类型,常见的简单类型有:
- 字符串: text(可分词的文本)、
keyword(精确值,例如:品牌、国家、ip地址)
- 数值: long、integer、short、byte、double、float、
- 布尔: boolean
- 日期: date
- 对象: object
- index: 是否创建索引,默认为true
- analyzer: 使用哪种分词器
- properties: 该字段的子字段
Elasticsearch提供的所有API都是Restful的接口,遵循Restful的基本规范:
索引库操作
- 创建索引库和映射
- 查询索引库
- 删除索引库
- 修改索引库
索引库和mapping一旦创建无法修改,但是可以添加新的字段,语法如下
文档操作
1. 新增文档
新增文档的请求格式如下:
2. 查询文档
查看文档请求格式:
3. 删除文档
删除索引库的请求格式:
4. 修改文档
- 全量修改
全量修改,会删除旧文档,添加新文档
- 如果旧文档不存在, 起到的就是新增的效果
- 如果旧文档存在, 修改文档时, 用新内容覆盖旧内容
- 局部修改
增量修改,修改指定字段值
5. 批量处理
Elasticsearch中允许通过一次请求中携带多次文档操作,也就是批量处理,语法格式如下:
说明:
index
代表新增操作
-
_index
:指定索引库名_id
指定要操作的文档id{ "字段1" : "值1" , "字段2" : "值2" }
:则是要新增的文档内容
delete
代表删除操作
-
_index
:指定索引库名_id
指定要操作的文档id
update
代表更新操作
-
_index
:指定索引库名_id
指定要操作的文档id{ "doc" : {"field2" : "value2"} }
:要更新的文档字段
示例
- 批量新增
- 批量删除
- 批量操作时, 语句的内容不能换行