前言可以把海量数据都放到 es 里然后提供搜索操作,但是 MySQL 也同样可以提供搜索,为什么要用 es 呢?因为它搜索快,使用倒排索引的方式将数据分词之后存储数据,查询的时候直接根据搜索关键词找到相关数据。 另一个是因为它可以提供一些 MySQL 做不到或者比较耗时的模糊搜索。 es结构与介绍es数据结构中,是可以和 MySQL 等数据库的结构对应起来的,比如 index 对应 MySQL 中的 database,type 对应 MySQL 中的 table,而 source 中的数据则对应于 MySQL 中一条条的数据。 但是 es 中 source 中的这些字段,比如 name,可以不预先定义,也可以预先定义,这一点不同于 MySQL,es 甚至可以直接写入值,es 会自动为其找到对应的字段属性从而定义。 比如我们前面 PUT 的这条数据,查看 customer 这个数据库 index 的结构,可以看到 es 根据值为其自动创建了属性为 keyword。 es 中常见字段类型:keyword:常用于存储结构化内容,比如email地址,电话号码,名称等等 text:文本类型,常用于保存大段文本,然后可以进行分词搜索等操作 integer:整数 long:浮点型数据 date:日期格式,比如 '2022-01-01 12:00:00' boolean:布尔型,true/false 数组:es 中没有单独的数组类型,但是当我们确定将某个字段作为数组之后,可以直接将其作为数组使用,但是添加的元素必须是相同的,这个我们后面再介绍。 |
|