0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GaussDB(for Cassandra)新特性发布:支持Lucene二级索引,让复杂查询更智能

秃头也爱科技 来源:秃头也爱科技 作者:秃头也爱科技 2022-12-02 09:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天,华为云GaussDB(for Cassandra)携__Lucene引擎全新解决方案__来啦!

当前,互联网、大数据飞速发展,数据量呈爆发式增长,在高并发、高可用、高扩展性的业务需求推动下,NoSQL数据库成为了越来越多场景的刚需。但在查询方面,传统的NoSQL却有一定的局限性,严格来说,像开源MongoDB、Cassandra、Hbase等都不具备海量数据的多维查询、文本检索、统计分析等能力。多数企业仍然在寻求一套更完美的NoSQL解决方案。

华为云原生多模数据库GaussDB NoSQL拥有强大的生态体系,支持键值、宽表、文档、时序四种引擎接口。其中,宽表引擎接口GaussDB(for Cassandra)现已发布Lucene二级索引功能,既具备NoSQL的优势,又能支持多种复杂查询场景,全面提升用户在海量数据场景下的查询体验,凭实力宠粉!相信大家一定有很多疑问,GaussDB(for Cassandra)是什么?二级索引如何使用?Lucene二级索引又有哪些区别?别着急,接下来让我们一一解读。

C:\\Users\\z30027292\\AppData\\Roaming\\eSpace_Desktop\\UserData\\z30027292\\imagefiles\\originalImgfiles\\BD1D2FCB-2198-4973-A900-9DE6FFF33368.png

什么是GaussDB(for Cassandra)?

GaussDB(for Cassandra)是一款基于华为自研、采用计算存储分离架构的分布式云数据库,在高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、备份恢复、监控报警等服务能力;并高度兼容开源Cassandra接口,提供高读写性能。当前已经广泛应用于IoT、气象、互联网、游戏等诸多领域。

什么是二级索引?

我们先来了解下索引的概念。索引是为了加快数据检索速度而创建的一种存储结构,是一种以空间换时间的设计思想。作用可以理解为书的目录,通过目录可快速定位到所需要的内容。

在Cassandra中,Primary Key就是索引(也被称为一级索引),在查询的时候,根据Primary Key可以直接检索到对应的记录。而二级索引又称辅助索引,是为了帮助定位到一级索引,然后再根据一级索引找到对应记录。我们平时使用CREATE INDEX语句建立的就是二级索引。

当前Cassandra二级索引的痛点有哪些?

原生Cassandra中二级索引的实现其实是创建了一张隐式的表,该表的Primary Key是创建索引的列,值为对应的Primary Key,实现相对简单,因此不可避免地带来了一些约束条件:

1.第一主键只能用“=”查询;

2.第二主键可以使用“=、>、<、>=、<=”;

3.索引列只支持“=”查询;

4.删除、更新太过频繁的列不适合建立索引;

5.High-cardinality列不适合做索引;

基于以上约束,Cassandra二级索引能提供的查询功能非常有限。

Why Lucene?

Lucene是当下最火的开源全文检索引擎工具,具有以下特点:

1.稳定、索引性能高;

2.是高效、准确、高性能的搜索算法

3.具备丰富的查询类型:支持短语查询、通配符查询、近似查询、范围查询等;

4.有强大的开源社区支持,可维护性好;

因此,用集成Lucene引擎来补充Cassandra查询能力的弱点是最佳选择,毕竟谁又会拒绝一款性能稳定、持续成长、又更新迭代的搜索引擎呢?

Lucene引擎强大的倒排索引和列式存储能力,赋予了GaussDB(for Cassandra)高效的多维查询、文本检索、统计分析等能力,在使用体验上和原生二级索引相似,但同时拥有了更为丰富的语法支持。

使用Lucene二级索引后,我的查询发生了哪些变化?

更加灵活的查询、过滤方式:

所有查询均可不带PK或者带部分PK,并且索引列支持 “>、<、in”等操作符,用户不需要再局限于只使用“=”。

强大的文本检索能力:

文本检索能力正是Lucene最擅长的,使用起来十分方便,只需要通过关键词like即可实现。

你可以这样:

SELECT \\* FROM example WHERE field LIKE 'test%';   // 前缀查询

也可以这样:

SELECT \\* FROM example WHERE field LIKE 'start\\*end';   // 正则匹配

还可以这样:

SELECT \\* FROM example WHERE field LIKE '%\\+lucene \\+index%';   // 全文搜索功能,性能高效,稳定

支持超万亿规格的大数据量统计:

SELECT count\\(\\*\\) FROM example WHERE field1>\\-1 AND EXPR\\(field2, 'count'\\);

多种删除方式:

支持single单行删除、partition分区删除、range范围删除,全方位覆盖各种删除场景。

DELETE FROM example WHERE pk1='a' AND field=1;   // single单行删除

DELETE FROM example WHERE pk1='a' AND pk2=5000;   // partition分区删除

DELETE FROM example WHERE pk1='a' AND pk2=3000 AND ck1=2 AND ck2>'a' AND ck2<'c';   // range范围删除

支持扩展json查询接口,轻松应对各种复杂查询场景:

扩展的json查询接口提供了丰富的查询语法,用法更多样化。以下是关键字列表:

filter

在查询语句中json查询的关键字

term

查询时判断某个document是否包含某个具体的值,不会对被查询的值进行分词查询

match

将被询值进行分词,进行全文检索

range

查询指定某个字段在某个特定的范围(范围查询子关键字:"eq"/"gte"/"gt"/"lte"/"lt")

bool

必须和 "must"、"should"、"must not" 一起组合出复杂的查询

must

bool类型的子查询,类型为list,封装"term"、"match"、"range" 查询

should

bool类型的子查询,类型为list,封装"term"、"match"、"range" 查询

must not

bool类型的子查询,类型为list,封装"term"、"match"、"range" 查询

举个栗子:

SELECT \\* FROM example WHERE EXPR\\(index\\_field, '\\{"filter": \\{"bool": \\{"should": \\[\\{"bool": \\{"should": \\[\\{"bool": \\{"must": \\[\\{"bool": \\{"should": \\[\\{"range": \\{"ck1": \\{"lt": 2\\}, "ck1": \\{"gte": 4\\}\\}\\}\\]\\}\\}, \\{"bool": \\{"should": \\[\\{"range": \\{"field1": \\{"lt": 2\\}, "field1": \\{"gt": 3\\}\\}\\}\\]\\}\\}\\]\\}\\}, \\{"bool": \\{"should": \\[\\{"term": \\{"pk1": "a", "pk1": "b", "pk1": "c"\\}\\}\\]\\}\\}\\]\\}\\}, \\{"bool": \\{"must": \\[\\{"range": \\{"field2": \\{"gte":5, "lte": 15\\}, "pk2": \\{"gt": 2000\\}\\}\\}\\]\\}\\}\\]\\}\\}\\}'\\)

通过条件组合加嵌套,您可以DIY符合自身业务的sql语句,并且最高支持200层json嵌套,再复杂的场景也能处理!

华为云GaussDB(for Cassandra)搭载Lucene引擎,通过Lucene二级索引将搜索能力下沉至底层,从根本上解放了应用层查询,兼具多维查询、文本检索、统计分析等多种能力,可以完美地弥补NoSql弱查询功能的短板,让企业从容应对海量数据的复杂查询场景。还等什么,速来体验吧!
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    4031

    浏览量

    45552
  • Lucene
    +关注

    关注

    0

    文章

    6

    浏览量

    7834
  • 华为云
    +关注

    关注

    3

    文章

    2804

    浏览量

    19079
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    发布元服务配置应用分类、标签和资质信息(仅分发手表设备)

    ,参考华为应用市场应用分类规则,选择元服务分类。 5.点击“管理标签”,选择元服务的标签。 最多可以选择5个标签,且必须设置其中一个为主标签,主标签必须与您设置的二级分类相关联。选择标签时,可以根据二级分类
    发表于 10-30 17:47

    Hudi系列:Hudi核心概念之索引(Indexs)

    多态索引 布隆过滤器 记录索引 表达索引 二级索引 3.3写入端的索引类型 3.4 全局
    的头像 发表于 10-21 09:47 187次阅读
    Hudi系列:Hudi核心概念之<b class='flag-5'>索引</b>(Indexs)

    二级差分电路的电阻怎么配置?

    想问下,二级差分电路的电阻该怎么配置呢?
    发表于 10-16 15:05

    配电柜二级浪涌保护器的安装选型与行业应用方案

    一、二级浪涌保护器的概念与作用 浪涌保护器(Surge Protective Device,简称SPD)是一类专门用来保护低压配电系统及其用电设备免受雷电感应、电磁脉冲及操作过电压影响的装置。 按照
    的头像 发表于 09-28 14:40 366次阅读
    配电柜<b class='flag-5'>二级</b>浪涌保护器的安装选型与行业应用方案

    电视智能,从“被动播放”到“感知陪伴”

    智能家居快速发展的今天,电视不再只是一个“播放内容”的设备,而正在逐步成为客厅的智能交互中心。如何电视变得“懂你”,节能、
    的头像 发表于 08-06 14:33 658次阅读

    HarmonyOS NEXT应用元服务常见列表操作二级联动

    二级联动场景 场景描述 通过左边一列表的选择,联动更新右边二级列表的数据,常用于商品分类选择、编辑风格等二级类别选择页面。 本场景以商品分类列表页面为例,分别通过List组件,对左侧
    发表于 07-02 10:29

    二级浪涌电路之保险丝选型

    点在哪里呢? 本文通过DC110V接口保护电路的设计,讲解二级防雷电路中退耦电感的选型。 、设计方案 防护器件的选择相对来讲比较直观,器件厂家会提供器件的额定工作电压、击穿电压、嵌位电压等参数,甚至
    发表于 06-28 22:00

    由 Mybatis 源码畅谈软件设计(八):从根上理解 Mybatis 二级缓存

    的 cache 标签指定了 readOnly 属性,因为该配置相对比较重要,所以我们在这里把它讲解一下: readOnly 默认为 false ,这种情况下通过二级缓存查询出来的数据会进行一次 序列化深拷贝 。在这里大家需要回想一下介绍一缓存时
    的头像 发表于 06-23 11:35 318次阅读
    由 Mybatis 源码畅谈软件设计(八):从根上理解 Mybatis <b class='flag-5'>二级</b>缓存

    支持次开发的工业维码扫码读头选购指南

    在快节奏的工业环境中,如何维码识别速度提升200%?面对复杂多变的扫码需求,普通扫码设备往往力不从心,而支持次开发的工业
    的头像 发表于 06-11 16:05 478次阅读
    <b class='flag-5'>支持</b><b class='flag-5'>二</b>次开发的工业<b class='flag-5'>级</b><b class='flag-5'>二</b>维码扫码读头选购指南

    蔡司培训|提升技能必看——AUKOM 一/二级课程培训

    AUKOM 一课程通过系统的分析测量误差,即工件、环境、测量机、操作人员、测量策略,五个方面分析误差因子,保证策量结果的准确性。 AUKOM 二级课程是在AUKOM 一的基础上,更深入的展开
    发表于 06-03 14:26 1852次阅读
    蔡司培训|提升技能必看——AUKOM 一<b class='flag-5'>级</b>/<b class='flag-5'>二级</b>课程培训

    二级浪涌电路之退耦电感选型

    二级浪涌防雷电路设计
    的头像 发表于 05-12 15:31 1583次阅读
    <b class='flag-5'>二级</b>浪涌电路之退耦电感选型

    安泰电压放大器在雪崩光电二级管辐射特性研究中的应用

    实验名称:雪崩光电二级管电致发光辐射特性的研究 测试目的:雪崩光电极管是一种高速、高灵敏的极管。相比于通常的光电倍增管,APD具有高量子效率、高稳定性,对于外部环境具有很强的适应性
    的头像 发表于 04-17 11:41 495次阅读
    安泰电压放大器在雪崩光电<b class='flag-5'>二级</b>管辐射<b class='flag-5'>特性</b>研究中的应用

    引领照明行业走向智能化与专业化,中国照明学会联合易来举办二级照明设计师培训

    3月4日至10日,由中国照明学会与智能照明领导品牌Yeelight易来联合主办的“二级照明设计师专业培训”在青岛举行。本次培训汇聚了来自全国各地的照明设计从业者,通过为期7天的系统性课程与实战演练
    的头像 发表于 03-04 15:35 817次阅读
    引领照明行业走向<b class='flag-5'>智能</b>化与专业化,中国照明学会联合易来举办<b class='flag-5'>二级</b>照明设计师培训

    爱立信如何网络运维简单

    在爱立信“可编程网络”这一创新概念里,差异化连接、AI赋能和意图驱动、网络能力开放作为三大基石,各司其职,网络智能、更灵活、开放。本期《信观察》,爱立信专家将从AI赋能和意图驱动
    的头像 发表于 03-03 09:27 1w次阅读

    创建唯一索引的SQL命令和技巧

    在创建唯一索引时,以下是一些SQL命令和技巧,可以帮助优化性能: 使用合适的索引类型:对于需要保证唯一性的列,使用UNIQUE索引来避免重复数据的插入。 这可以确保列中的值是唯一的,同时提高
    的头像 发表于 01-09 15:21 799次阅读