ElasticSearch系列 - 文档&索引

ElasticSearch系列 - 文档&索引
对比MySQL
MySQLElasticSearch
TableIndex(Type)
RowDocument
ColumnField
SchemaMapping
SQLDSL
  • ElasticSearch:Schemeless(弱模式)/相关性/高性能全文检索
  • MySQL:事务/join
文档(Document)

ElasticSearch是面向文档的,文档是所有可搜索数据的最小单位

  • 一个error日志
  • 一个房屋具体信息
  • 一个详细的用户信息

文档会被序列化为JSON格式,保存在ElasticSearch中

  • JSON对象由字段组成
  • 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)

每个文档都有一个Unique ID

  • 可以指定ID
  • 或者通过ElasticSearch自动生成
JSON文档

一篇文档包含一系列的字段,对比数据库表中一条记录

JSON文档,格式灵活,不需要预先定义格式

  • 字段的类型可以指定或者ElasticSearch自动推算
  • 支持数组/支持嵌套

例如下述一个文档

userId,name,content
1,wxt,12|150xxxxxxxx|message

对应ElasticSearch中的JSON为

{
	userId:1,
	name:"wxt",
    @version:"1",
	content:["12","150xxxxxxxx",message]
}

PS:不一定是上述这种格式,根据Logstash的conf配置不同,解析的规则也不同,生成的JSON格式也不同。

元数据
{
	"_index":"userInfo",
  "_type":"_doc",
  "_id":"1",
  "_score":15.69303,
  "_source":{
			userId:1,
			name:"wxt",
    	    @version:"1",
			content:["12","150xxxxxxxx",message]
	}
},
名称含义
_index文档所属索引名
_type文档所属的类型名
_id文档唯一Id
_source文档原始Json数据
_score相关性打分
@version文档版本信息
_all已经被废除
索引(Index)

Index 索引是文档的容器,是一类文档的结合

  • Index体现了逻辑空间的概念,每个索引都有自己的Mapping定义,用于定义包含的文档的字段名和字段类型
  • shard体现物理空间概念,索引中的数据分散在Shard上

索引的Mapping与Settings

  • Mapping定义文档字段的类型
  • Setting定义不同的数据分布
{
  "userInfo":{
    "settings":{
      "index":{
        "creation_date":12345678932,
        "number_of_shards":"2",
        "number_of_replicas":"0",
        "uuid":"QND213SJBDJ12JHS",
        "version":{
          "created":"9381311"
        },
        "provided_name":"movies"
      }
    }
  }
}
Type

在7.0之前一个Index可以设置多个type,7.0之后一个索引只能创建一个type-"_doc"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值