ES-Type
Type是什么
- type,是一个
index
中用来区分类似的数据的,类似的数据,但是可能有不同的fields
- 而且有不同的属性来控制索引建立、分词器
lucene
是没有 type 的概念的- 在
document
中,实际上将 type 作为一个 document 的field
来存储- 即 type,es 通过
_type
来进行 type 的过滤和筛选
Type的存储机制
- 一个
index
中的多个 type,实际上是放在一起存储的- 因此一个
index
下,不能有多个type
重名- 而类型或者其他设置的不同,因为那样是无法处理的
- 插入数据测试
PUT /goods/electronic_goods/1
{
"name":"小米空调",
"price":1999,
"service_period":"one year"
}
PUT /goods/fresh_goods/1
{
"name":"澳洲龙虾",
"price":199,
"eat_period":"one week"
}
- ES 底层实际的存储形式其实是这样的,如下:
{
"goods":{
"mappings":{
"_type":{
"type":"string",
"index":"false"
},
"name":{
"type":"string"
},
"price":{
"type":"double"
},
"service_period":{
"type":"string"
},
"eat_period":{
"type":"string"
}
}
}
}
- 底层数据的存储形式
{
"_type":"electronic_goods",
"name":"小米空调",
"price":1999,
"service_period":"one year",
"eat_period":""
}
{
"_type":"fresh_goods",
"name":"澳洲龙虾",
"price":199,
"service_period":"",
"eat_period":"one week"
}
Type弃用的原因
- 同一索引下,不同
type
的数据也需要存储其他type
的field
- 这样就会出现大量的空值,造成资源的浪费,因此不同的数据要放到不同的索引中
ES9 中将会彻底删除 type
标签:
ElasticSearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具