重要概念

倒排索引:

将文本内容进行分词,然后将分词结果放到一个表中,表左边存储分词结果,右边存储其id值。在进行分词的时候直接用词遍历这个表,就能直观拿到对应的数据。

Es核心概念:

Relational DB

Elasticsearch

数据库(database)

索引(indices)

表(tables)

types(7.x版本中已经被废弃)

行(rows)

documents

字段(columns)

fields

表结构

映射(mapping)

数据类型
简单数据类型
文本类型

类型

说明

keyword

不支持分词操作,支持聚合操作

text

支持分词操作,不支持聚合操作。

数值类型

类型

说明

byte

有符号的8位整数, 范围: [-128 ~ 127]

short

有符号的16位整数, 范围: [-32768 ~ 32767]

integer

有符号的32位整数, 范围: [−231−231 ~ 231231-1]

long

有符号的64位整数, 范围: [−263−263 ~ 263263-1]

float

32位单精度浮点数

double

64位双精度浮点数

half_float

16位半精度IEEE 754浮点类型

scaled_float

缩放类型的的浮点数, 比如price字段只需精确到分, 57.34缩放因子为100, 存储结果为5734

日期类型

JSON没有日期数据类型, 所以在ES中, 日期可以是:

  • 包含格式化日期的字符串, “2018-10-01”, 或"2018/10/01 12:10:30".
  • 代表时间毫秒数的长整型数字.
  • 代表时间秒数的整数.
范围类型

类型

范围

integer_range

−231−231 ~ 231−1231−1

long_range

−263−263 ~ 263−1263−1

float_range

32位单精度浮点型

double_range

64位双精度浮点型

date_range

64位整数, 毫秒计时

ip_range

IP值的范围, 支持IPV4和IPV6, 或者这两种同时存在

其他类型

①bool:

可以接受表示真、假的字符串或数字:

真值: true, “true”, “on”, “yes”, “1”…

假值: false, “false”, “off”, “no”, “0”, “”(空字符串), 0.0, 0

②二进制

(1) doc_values: 该字段是否需要存储到磁盘上, 方便以后用来排序、聚合或脚本查询. 接受truefalse(默认);
(2) store: 该字段的值是否要和_source分开存储、检索, 意思是除了_source中, 是否要单独再存储一份. 接受truefalse(默认).

复杂数据类型
数组

ES中没有专门的数组类型, 直接使用[]定义即可;

数组中所有的值必须是同一种数据类型, 不支持混合数据类型的数组:

① 字符串数组: [“one”, “two”];
② 整数数组: [1, 2];
③ 由数组组成的数组: [1, [2, 3]], 等价于[1, 2, 3];
④ 对象数组: [{“name”: “Tom”, “age”: 20}, {“name”: “Jerry”, “age”: 18}].

注意:

  • 动态添加数据时, 数组中第一个值的类型决定整个数组的类型;
  • 不支持混合数组类型, 比如[1, “abc”];
  • 数组可以包含null值, 空数组[]会被当做missing field —— 没有值的字段.
对象类型

json数据

地理位置

地理点类型用于存储地理位置的经纬度对, 可用于:

  • 查找一定范围内的地理点;
  • 通过地理位置或相对某个中心点的距离聚合文档;
  • 将距离整合到文档的相关性评分中;
  • 通过距离对文档进行排序.

思维导图

es format时间 es 日期类型_大数据

基本使用

es的文件目录中包含:bin(启动文件所在),config(配置文件所在),plugins(插件位置所在)

配置用户

①在config文件夹下修改 elasticsearch.yml,加上配置 ,然后重启es。

xpack.security.enabled: true

②在es的bin目录下,打开CMD输入

elasticsearch-setup-passwords interactive

③会显示响应的提示,根据提示输入自己的密码。

安装插件

bin目录下,CMD输入

# 安装插件
elasticsearch-plugin install [plugin_name]
# URL安装
elasticsearch-plugin install [url]
# 查看es安装的插件
elasticsearch-plugin list

或者,Es安装插件,直接将其丢在es的plugins文件目录下,如将IK分词插件的包解压丢到plugins下,命名为IK.

基础Restful

es format时间 es 日期类型_es format时间_02

注意:

更新最好使用 post xxx/_update 这样只会更新对应的数据,而使用put会覆盖掉之前的数据。