网站首页 > 技术文章 正文
ES概念介绍
Elaticsearch,简称为ES, ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
1、ES核心概念组成
● 索引 index:一个索引相当于一个关系数据库的数据库
● 类型 type:一种type相当于关系数据库的一类数据表,在ES 7.x默认type为_doc
ES 5.x中一个索引(index)可以有多种type
ES 6.x中一个索引(index)只能有一种type
ES 7.x版本以后,将逐步淡化type这个概念,现在的操作已经不再使用,默认_doc
● 映射 mapping:mapping定义了每个字段的类型、字段所使用的分词器信息。相当于关系型数据库中的表结构。
● 文档 document:一个document相当于关系型数据库中数据表的一行记录
● 倒排索引:一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词都有包含它的文档id列表
● 字段 field:相当于关系型数据库表的字段名称
2、ES数据类型介绍
2.1 字符串型
text:用于全文索引,该类型的字段将通过分词器 进行分词
keyword:不进行分词,只能搜索该字段的完整的值
2.2 数值型
long, integer, short, byte, double, float, half_float, scaled_float
2.3 布尔型 boolean
boolean JSON 中的 “true”、“false”、true、false 都可以
2.4 二进制类型 binary
该类型的字段把值当做经过 base64 编码的字符串,默认不存储,且不可搜索
2.5 范围类型
范围类型表示值是一个范围,而不是一个具体的值
integer_range, float_range, long_range, double_range, date_range
比如:age 的类型是 integer_range,如果存储的值是 {"gte" : 18, "lte" : 90};搜索 "term" : {"age": 60} 可以查询到该值
2.6 日期型 date
因为Json没有date类型,所以es通过识别字符串是否符合format定义的格式来判断是否满足date类型
format默认为:strict_date_optional_time||epoch_millis
"2023-01-31" "2023/01/31 12:10:30" 类似这种字符串格式
2.7 复杂数据类型
● 数组:[ ] Nested: nested (数组类型的JSON对象)
比如:[ { "name": "小张", "age": 30 }, { "name": "小李", "age": 35 }]
● 对象:{ } Object: object(单个JSON对象)
比如:{ "name": "小李", "age": 35 }
- 上一篇: python-elasticsearch从创建索引到写入数据
- 下一篇: ES删除 es删除文档
猜你喜欢
- 2024-10-29 你还在用 Date?快使用 LocalDateTime 了!
- 2024-10-29 Java修炼终极指南:79,80,81 签到终极修炼天赋
- 2024-10-29 硬核!最全的延迟任务实现方式汇总!附代码(强烈推荐)
- 2024-10-29 还在实体类中用Date?JDK8新的日期类型不香么?
- 2024-10-29 LocalDateTime 说:2020,是时候换个更好的日期时间类了
- 2024-10-29 程序员,你还在使用Date嘛?建议你使用LocalDateTime哦
- 2024-10-29 深度思考:在JDK8中,日期类型该如何使用?
- 2024-10-29 为什么建议使用你 LocalDateTime,而不是 Date?
- 2024-10-29 百度开源的分布式唯一ID生成器UidGenerator,解决了时钟回拨问题
- 2024-10-29 DeepLearning4j 实战:手写体数字识别的 GPU 实现与性能对比
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)