ElasticSearch基本操作
1.ElasticSearch基本操作
1.1 创建索引
创建一个索引,分片数为5,副本数为1
PUT /person
{
"settings":{
"number_of_shards": 5,
"number_of_replicas": 1
}}
1.2 查看索引
创建一个索引,分片数为5,副本数为1
PUT /person
{
"settings":{
"number_of_shards": 5,
"number_of_replicas": 1
}
}
2.ElasticSearch Field字段类型
2.1 字段类型
- string
- text: 用于全文索引,将当前Field进行分词
- keyword:当前Field不会被分词
- 数值类型:
- long:
- integer:
- short:
- byte:
- double:
- float:
- half_float: 精度比float小一半
- scaled_float:根据一个long和scaled来表达一个浮点型,long-345, scaled-100 ->3.45
- 时间类型:
- date: 针对时间类型指定具体的格式
- 布尔类型:
-boolean: 表达true和false - 二进制类型:
- binary:暂时只支持base64字符串
- 范围类型:
- long_range: 赋值时,无序指定具体的内容,只需要存储一个范围即可,指定gt,lt,gte,lte
- integer_range
- double_range
- float_range
- date_range
- ip_range
- 经纬度类型:
- geo_point: 用来存储经纬度
- 其他类型
2.2 创建索引指定字段类型
# 创建索引指定数据结构
PUT /book
{
"settings":{
# 分片数
"number_of_shards": 5,
# 备份数
"number_of_replicas": 1
},
# 指定数据结构
"mappings": {
# 类型Type
"novel": {
# 文档存储的Field
"properties":{
# Field属性名
"name": {
# 类型
"type": "text",
# 分词器
"analyzer": "ik_max_word",
# 指定当前Field可以被作为查询的条件
"index": true,
"store": false
},
"author":{
"type": "keyword"
},
"count": {
"type": "long"
},
"onSale":{
"type": "date",
# 指定时间类型的格式化方式
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"descr":{
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
}
3.ElasticSearch文档操作
3.1 新建文档
文档在ES服务中的唯一标识,_index,_type,_id 三个内容为符合,锁定一个文档。
3.1.1 自动生成_id
3.1.2 手动生成_id
3.2 修改文档
3.2.1 覆盖式修改
如果覆盖写入的字段没有,则覆盖写入的字段中也没有此字段
3.2.2 doc修改方式
3.3 查看结果
3.3 删除文档
3.3.1 根据_id删除文档
DELETE /索引名/type/文档_id