数据类型
字符串类型
1. string类型: 在ElasticSearch 5.x之前中使用较多,从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代。
2. text 类型:当一个字段是要被全文搜索的,比如Email内容、产品描述,应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。
3. keyword类型:适用于索引结构化的字段,比如email地址、主机名、状态码和标签。如果字段需要进行过滤、排序、聚合。keyword类型的字段只能通过精确值搜索到。
需要分词使用text,否则使用keyword。
数值类型
数值类型:long,integer,short,byte,double,float,half_float,scaled_float
整数类型:占用内存最小,有助于索引和搜索更加有效。
注意:存储是根据实际值进行优化的,因此选择类型的前提是不会影响存储需求。
对于浮点类型,使用缩放因子将浮点数存储为整数通常会更加有效,scaled_float 类型会自动在后台执行此操作。这对于节省磁盘空间很有帮助,因为整数比浮点数更容易压缩。
日期类型格式:
日期格式的字符串,例如 “2023-09-12” 或 “2023-09-12 12:10:30”
long类型的毫秒数( milliseconds-since-the-epoch,epoch就是指UNIX诞生的UTC时间1970年1月1日0时0分0秒)
integer的秒数(seconds-since-the-epoch)
布尔类型
True、False
binary类型
接受二进制值作为 Base64编码的字符串。该字段默认情况下不存储、不可搜索。
对象数据类型
JSON对象,文档可能包含内部对象,而内部对象又可能包含内部对象本身。
数组类型
在Elasticsearch中,没有专用的array数据类型。
字符数组: [ "one", "two", "three"]
整数数组: [ 1, 2, 3, 4 ]
对象数组: [ { "name": "jack", "age": 20 }, { "name": "rose", "age": 18 } ]
注意:lasticSearch不支持元素为多个数据类型:[ 10, “some string” ]
API使用
elasticsearch 常见api使用 (在ApiPost中使用,也可以通过kibana的 dev tools去使用)
ApiPost中使用
创建索引
put http://172.16.10.109:9200/sc5
修改索引
put http://172.16.10.109:9200/sc5/_settings
查看当前有哪些索引
GET http://172.16.10.109:9200/_cat/indices?v
注意:对索引的修改,比如分片修改和名字修改,一旦定义就更改不了了。
kibana的 dev tools
创建索引
增加数据
查看索引
修改索引 ,将索引的副本修改为2
查看数据