Elasticsearch 移除 type 之后的新姿势

Elasticsearch 为何要在 7.X版本中 去除type 的概念 背景说明 Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 Elasticsearch 是一种NoSQL数据库(非关系型数据库),和常规的关系型数据库(比如:MySQL,Oralce等)的基本概念,对应关系如下: Elasticsearch:index --> type --> doc --> field MySQL: 阅读详情

随着 7.0 版本的即将发布,type 的移除也是越来越近了,在 6.0 的时候,已经默认只能支持一个索引一个 type 了,7.0 版本新增了一个参数 include_type_name ,即让所有的 API 是 type 相关的,这个参数在 7.0 默认是 true,不过在 8.0 的时候,会默认改成 false,也就是不包含 type 信息了,这个是 type 用于移除的一个开关。

让我们看看最新的使用姿势吧,当 include_type_name 参数设置成 false 后:

  • 索引操作:PUT {index}/{type}/{id}需要修改成PUT {index}/_doc/{id}
  • Mapping 操作:PUT {index}/{type}/_mapping 则变成 PUT {index}/_mapping
  • 所有增删改查搜索操作返回结果里面的关键字 _type 都将被移除
  • 父子关系使用 join 字段来构建
  • #创建索引
    PUT twitter
    {
      "mappings": {
        "_doc": {
          "properties": {
            "type": { "type": "keyword" }, 
            "name": { "type": "text" },
            "user_name": { "type": "keyword" },
            "email": { "type": "keyword" },
            "content": { "type": "text" },
            "tweeted_at": { "type": "date" }
          }
        }
      }
    }
    
    #修改索引
    PUT twitter/_doc/user-kimchy
    {
      "type": "user", 
      "name": "Shay Banon",
      "user_name": "kimchy",
      "email": "shay@kimchy.com"
    }
    
    #搜索
    GET twitter/_search
    {
      "query": {
        "bool": {
          "must": {
            "match": {
              "user_name": "kimchy"
            }
          },
          "filter": {
            "match": {
              "type": "tweet" 
            }
          }
        }
      }
    }
    
    #重建索引
    POST _reindex
    {
      "source": {
        "index": "twitter"
      },
      "dest": {
        "index": "new_twitter"
      }
    }

    原文链接

elasticsearch8的整体总结 elasticsearch的总结 阅读详情

相关推荐

【Elasticsearch】 es 6.8 的 type _doc

1.概述 在es 6.8版本做了一个实验。 首先创建了一个索引 PUT index-lcc-09 { "acknowledged" : true, "shards_acknowledged" : true, "index" : "index-lcc-09" } 然后查看索引内容 GET index-lcc-09 { "index-lcc-09" : { "aliases" : { }, "mappings" : { }, "settings" : {

九师兄 1678

ES为什么要移除types类型

换句话说,使用上面的示例,用户类型中的 user_name 字段与 tweet 类型中的 user_name 字段存储在完全相同的字段中,并且两个 user_name 字段在两种类型中必须具有相同的映射(定义)。**您可以将推文和用户存储在推文索引中,将用户存储在用户索引中,而不是将推文和用户存储在单个推特索引中。同志们,可以试一下,在同一个index中,不同的type,创建一个同名的字段,但是类型不要弄成一样的,看能否成功创建。同一个数据库下,不同的表,命名名称一样的字段名。

Rocky balboa 3774

AI 推理与服务(AI Inference and Serving)

AI 推理和服务是现代分布式系统中的重要组成部分。通过合理应用 AI 推理和服务的最佳实践,可以显著提高系统的智能性和用户体验。本章介绍了 AI 推理和服务的核心概念、最佳实践以及在分布式系统中的应用,希望这些内容能帮助您构建更智能、更高效的分布式系统。

蜗牛沐雨 1382

ElasticSearch 使用不同表结构存储时间序列数据的查询效率分析

之前测试了《MongoDB 使用不同表结构存储时间序列数据的查询效率分析》 这里我们使用和之前完全相同的测试数据,来测试 elasticsearch 存储时间序列的表结构选择问题。 一个点一个doc的表结构 同样我们以最简单的表结构开始。在elasticsearch中,先要创建index,然后index下有mapping。所...

weixin_33939380的博客 315

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

PCB模块化设计24——DCDC电源模块PCB布局布线设计规范

qq_31444421的博客 2万+

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码?

本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。

weixin_42528780的博客 463

ElasticSearch 8 学习笔记总结(六)

一. ES8 的Java API 环境准备 二. ES8 的Java API 索引操作 三. ES8 的Java API 文档操作 1. 文档的 插入 批量插入 删除等操作 2. 文档的查询 四、异步客户端操作

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 3330

【2023】Java利用modbus4j实现工业设备Modbus TCP数据采集与解析

本文详细介绍了在2023年使用Java和modbus4j库实现工业设备Modbus TCP数据采集与解析的完整实践。内容涵盖开发环境搭建、TCP连接建立、开关量与模拟量数据的读取与解析、批量读取性能优化、控制指令写入以及常见错误排查指南,为开发者构建稳定高效的工业物联网数据采集系统提供全面指导。

rose2的博客 723

Elasticsearch为什么要移除type?

目录 ES - es为什么要移除type? 1、index、type的初衷 2、为什么现在要移除type? 3、替换策略 4、迁移方案 5、参考 Elasticsearch 移除 type 之后的新姿势 相关链接: ES - es为什么要移除type? 1、index、type的初衷 之前es将index、type类比于关系型数据库(例如mysql)中database、table,这么考虑的目的是“方便管理数据之间的关系”。 2、为什么现在要移除type? 2.1 在关系型数.

zhanghongzheng3213的专栏 3445

电力电子技术(13)——大功率可控整流电路

目录引言2.6.1 带平衡电抗器的双反星形可控整流电路电路结构的特点接平衡电抗器的原因平衡电抗器使得两组三相半波整流电路同时导电的原理分析谐波分析2.6.2 多重化整流电路概述原理目标1)移相多重联结2)多重联结电路的顺序控制3重晶闸管整流桥顺序控制带平衡电抗器的双反星形可控整流电路(是多重化整流电路的重要形式之一)的特点:适用于低电压、大电流的场合。多重化整流电路的特点:绕组的极性相反的目的:消除直流磁通势如图所示,虽然两组相电流的瞬时值不同,但是平均电流相等而绕组的极性相反,所以直流安匝(电流*匝数)互

weixin_45589295的博客 1万+

私有云平台搭建——OpenStack

私有云平台搭建——OpenStack 搭建过程

2301_79739036的博客 3091

ES7为什么废弃type类型

两种场景,大家都用过: 同一个index下,不同的type,命名名称一样的字段名。 同一个数据库下,不同的表,命名名称一样的字段名。 在关系型数据库中,不同的表中,包含相同的字段名是很常见的,而且它们可以做到互不干扰。 在ElasticSearch中,不同的type,如果包含相同的字段名,它们是一样的,es会认为是一个字段,模糊掉不同type的概念。 同志们,可以试一下,在同一个index中,不同的type,创建一个同名的字段,但是类型不要弄成一样的,看能否成功创建。 答案是不可以,它会提示你,不可以将这个

numbbe的博客 4702

库存管理系统项目部署方案(基于jdk17)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 6373

elasticsearch7.x中spring.data.elasticsearch.cluster-name,cluster-nodes等属性过时以及移除type的解决方法

在搞elasticsearch的时候,发现用的版本比较高,导致很多以前的方法都过时了,晚上也很少关于这个的解决办法 主要原因是: 所以这里我们使用RestHighLevelClient 写一个配置类: @Configuration public class ElasticsearchConfig { @Bean RestHighLevelClient elasticsearchClient() { ClientConfiguration configuration = Cl

weixin_42260782的博客 1万+

单反相机物镜设计[DG-10]

REAR(要打在像面,操作数要找像面对应位置15):以透镜单位表示的真实光线径向坐标,波长由Wave定义,参见“Hx、Hy、Px和Py”。最小玻璃厚度最小不能小于semi-dia的1/10,要根据layout看有没有过厚过薄,反复调节。PROD:两个操作数的乘积(操作#1 X操作#2)。3x4就是57.3x0.41=23.5。拦光一般在第一面和最后一面操作,减少边缘无用光线。光阑面与镜面贴近,要调距离,同时设置光阑像差。后截距是指从镜头后表面到焦点的距离。CONS:弧度转为角度。镜头相互嵌入,有错误。

weixin_72050316的博客 600

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

elasticsearch移除type

设计type的初衷 之前es将index、type类比于关系型数据库(例如mysql)中database、table,这么考虑的目的是“方便管理数据之间的关系”。 移除type的原因 在关系型数据库中table是独立的(独立存储),但es中同一个index中不同type是存储在同一个索引中的(lucene的索引文件),因此不同type中相同名字的字段的定义(mapping)必须一致。 不同类型的“记录”存储在同一个index中,会影响lucene的压缩性能。 基于index的统计,一个type下的文档分数

day_ue的博客 592

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ElasticSearch搜索引擎介绍

搜索在现代日常生活场景中都非常常见,如百度、京东、天猫等等。数据量都是庞大的,所以直接基于数据库搜索必定不是他们的首选,在这些场景下,要完成数据的高效搜索,都会基于搜索引擎实现。而对于搜索实现来说,市面上常见三种技术:Lucene、Solr、ElasticSearch。Lucene严格意义来讲,并不能称为搜索引擎,其本身是一套类库,需要开发人员根据其内部API完成具体功能实现。而Solr和ElasticSearch都是基于Lucene进行了封装,他俩可以称为搜索引擎。

su3su3su3的博客 1729

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Elasticsearch移除类型(type)的时间表

Elasticsearch移除类型(type)的时间表 对于es的用户来说这是一个非常大的变化,所以官方让这件事情尽可能的做到无痛。这个变化将逐步演进: Elasticsearch 5.6.0 index.mapping.single_type设置为true后,索引将像6.x版本一样开启单type特性。 替代父子关系的join 字段在5.6里创建的索引是可用的 Elasticsearch 6....

weixin_30709929的博客 176

为什么Elasticsearch7.x把type给干掉了?

一、介绍ES7之前是有type的,属于index下,一个index可以有不同的type,ES7开始就把type这个显示概念给删除了,统一换成了_doc来表示type。也就是ES7开始一个index只能有一个type,而且这个type还是默认的_doc。二、type的底层存储1、概念讲解什么是类型(type)?从Elasticsearch的第一个发布版本以来,每一个文档都被存储在一个单独的索引里,并...

lxw1844912514的博客 4371

Elasticsearch7.X为什么移除type

Elasticsearch7.X为什么移除类型(type) 在Elasticsearch7.0.0及以后版本不再接受_default_ 映射。在6.x里创建的索引依然像在Elasticsearch6.X之前一样起作用。Types在7.0的API里是被舍弃的,在创建索引,设置映射,获取映射,设置模板,获取模板,获取字段映射API有着不兼容的改变。 什么是类型(type)? 从Elasticsea...

wangzhen3798的博客 7423

Elasticsearch(ES) 为何要在 7.X版本中 去除type 的概念

答:因为历史原因,前期 Elasticsearch 支持一个 index 下存在多个 type的,而且,有很多项目在使用 Elasticsearch 作为数据库。答: 因为 Elasticsearch 设计初期,是直接查考了关系型数据库的设计模式,存在了 type(数据表)的概念。” 的宗旨,适当的做些改变(去除 type)也是无可厚非的,也是值得的。因为关系型数据库比非关系型数据库的概念提出的早,而且很成熟,应用广泛。(这个是伤筋动骨的大手术,很多涉及到 type 源码是要修改的)。

geejkse_seff的博客 1100

一分钟掌握ES分布式搜索引擎基本架构

你在 mysql 中创建一个表,肯定是要定义表结构的,里面有哪些字段,每个字段是什么类型。实际上你往 index 里的一个 type 里面写的一条数据,叫做一条 document,一条 document 就代表了 mysql 中某个表里的一行,每个 document 有多个 field,每个 field 就代表了这个 document 中的一个字段的值。你搞一个索引,这个索引可以拆分成多个。

2401_89285717的博客 569

ES - es为什么要移除type?

1、index、type的初衷 之前es将index、type类比于关系型数据库(例如mysql)中database、table,这么考虑的目的是“方便管理数据之间的关系”。   2、为什么现在要移除type? 2.1 在关系型数据库中table是独立的(独立存储),但es中同一个index中不同type是存储在同一个索引中的(lucene的索引文件),因此不同type中相同名字的字段的定...

weixin_34186128的博客 1348
上一篇: RSA验证
下一篇: Docker简介以及使用docker搭建lnmp的过程(多PHP版本)
浮云且风吟
博客等级 码龄9年 48粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值