1.索引的简单操作
1.1 创建一个索引
#创建一个索引PUT /person{ "settings": { "number_of_shards": 5, "number_of_replicas": 1 }}
1.2 查看索引信息
#查看索引信息GET /person
1.3 删除索引
#删除索引DELETE /person
2.Elasticseach中Field可以指定的类型
2.1 字符串类型
- text:一般被用于全文索引,将当前Field进行分词
- keyword:当前Field不会被分词
2.2 数值类型
- long:-2^63~2^63-1,占用8个字节
- integer:-2^31~2^31-1,占用4个字节
- short:-2^15~2^15-1,占用2个字节
- byte:-2^7~2^7-1,占用1个字节
- double:占用8个字节
- float:占用4个字节
- half_float:精度比float小一半
- scaled_float:根据一个long和一个scaled来表示一个浮点型
2.3 时间类型
2.4 布尔类型
2.5 二进制类型
2.6 范围类型
- long_range:赋值时,无需指定具体的内容,只需要存储一个范围即可,指定gt,lt,gte,lte
- integer_range
- double_range
- float_range
- date_range
- ip_range
2.7 经纬度类型
2.8 ip类型
- 可以存储ipv4或者ipv6
3.创建索引并指定数据结构
#创建索引,指定数据结构PUT /book{"settings": { #分片数 "number_of_shards": 5, #备份数 "number_of_replicas": 1},#指定数据结构"mappings": { #类型 Type "novel": { #文档存储的Field "properties": { #Field属性名 "name": { #Filed类型 "type": "text", #指定分词器 "analyzer": "ik_max_word", #指定当前Field可以被作为查询条件 "index": true, #指定当前Field是否需要额外存储 "store": false }, "author": { "type": "keyword" }, "count": { "type": "long" }, "on-sale": { "type": "date", #时间类型的格式化方式 "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" }, "descr": { "type": "text", "analyzer": "ik_max_word" } } }}}
4.创建索引并指定数据结构
在Elasticsearch中,使用_index,_type,_id三个内容组合在一起,确定一个唯一的文档。
4.1 新建文档
4.1.1 自动生成id
#添加文档,自动生成idPOST /book/novel{"name": "盘龙","author": "我吃西红柿","count": 100000,"on-sale": "2000-01-01","descr": "是否符合咖啡壶康师傅哈萨克VN可是别是看是基本上看不"}
4.1.2 手动指定id
#添加文档,手动指定idPUT /book/novel/1{"name": "红楼梦","author": "曹雪芹","count": 10000000,"on-sale": "1985-01-01","descr": "水电费喝咖啡和思考峰会上开发好舒服尽快回复"}
4.2 修改文档
4.2.1 覆盖式修改
#覆盖式修改文档PUT /book/novel/1{"name": "红楼梦","author": "曹雪芹","count": 10086,"on-sale": "1996-10-5"}
4.2.2 doc方式修改
#doc方式修改文档POST /book/novel/1/_update{"doc": { #指定上需要改的field和对应的值 "count": 12345}}
4.3 删除文档
4.3.1 根据id删除文档
#根据id删除文档DELETE /book/novel/1