静态结构化数据全文检索的实现思路

这里的静态结构化数据,是指从关系型数据库中抽取存储在NoSQL、文本文件或者其他格式文件的数据,并且数据不再变化。

全文检索是指任意字段的精确查询、模糊查询&范围查询。字母或数字模糊查询只支持前导查询,中文模糊查询则不受限制。

首先在抽取数据时,数据量特别大的数据表,按分区按ROWID分片分文件存储。

其次,实现数据查询。

思路一:

最常规的方法,在所有的字段上创建索引,由于事先不清楚数据的分布如何,因此都创建B+树索引。

中文模糊查询的实现是采用中文分词,把中文所有可能的分词组合起来创建索引。

思路二:

不区分字段,不区分字段对数据表的所有值创建bitmap倒排索引,key为数据值,索引value为该值所在的文件位置,并且按key值排序。

同时为倒排索引创建索引(即索引的元数据),内容包括该索引文件的最大和最小数据值以及每隔N行的数据值,用来加快定位数据的速度。

如,表T,某个数据文件的内容如下:

1,430111780101777,你好,测试,2016010101

2,430111780101778,你好,测试,2016010101

3,430111780101779,你好,测试,2016010101

假设第一行的偏移量为0,第二行的偏移量为1,第三的偏移量为3,那么对应的倒排索引内容为:

1:0

2:1

3:2

2016010101:0,1,2

430111780101777:0

430111780101778:1

430111780101779:2

测试:0,1,2

你好:0,1,2

对应的倒排索引元数据如下:

[data]

min:1

max:你好

[index]

1:1

时间: 2024-07-30 20:28:08

静态结构化数据全文检索的实现思路的相关文章

如何保护非结构化数据

简单地说,数据可分为结构化数据和非结构化数据.对于非结构化的数据保护你知道怎么做吗? 下面先跟大家区分一下结构化和非结构化数据. 结构化数据,简单来说就是数据库,如MySQL\Oracle\MS SQL Server\PostgreSQL\.结合到典型场景中更容易理解,比如企业ERP.财务系统;教育一卡通;政府行政审批;其他核心数据库等.这些应用需要哪些保护方案呢?基本包括高速存储应用需求.数据备份需求.数据共享需求以及数据容灾需求. 非结构化数据,简单来说就是文档类:pdf/doc/ppt/x

什么是结构化数据?什么是半结构化数据?

概述 相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和音频/视频信息等等. 非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字.符号等信息)而且更适合处理非结构化数据(全文文本.图象.声音.影视.超媒体等信息). 非结构化WEB数据库主要是针对非结构化

Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据

听说最近冒出的大批呱儿子个个都是撑着眼皮也要看书的无眠小青蛙.我们学习Machine Learning的脚步又怎能停下来?动动手指,上滑开始~ 今天的内容是 [特征工程-结构化数据] 场景描述 特征工程是指结合问题寻找有效的特征并进行处理成适合模型的输入形式.机器学习中有句经典的话叫做"Garbage in, garbage out",意思是如果输入的数据是垃圾,那么得到的结果也是垃圾.可以看出模型成败的关键并不仅仅取决于模型的选取,还取决于我们是否有根据特定的问题找到了行之有效的输入

MaxCompute读取分析OSS非结构化数据的实践经验总结

摘要: 本文背景 很多行业的信息系统中,例如金融行业的信息系统,相当多的数据交互工作是通过传统的文本文件进行交互的.此外,很多系统的业务日志和系统日志由于各种原因并没有进入ELK之类的日志分析系统,也是以文本文件的形式存在的. 1. 本文背景 很多行业的信息系统中,例如金融行业的信息系统,相当多的数据交互工作是通过传统的文本文件进行交互的.此外,很多系统的业务日志和系统日志由于各种原因并没有进入ELK之类的日志分析系统,也是以文本文件的形式存在的.随着数据量的指数级增长,对超大文本文件的分析越来

详解Google-ProtoBuf中结构化数据的编码

原文转自:http://www.wuzesheng.com/?p=1258 本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf.因此,本文首先会介绍一些google protobuf相关的内容,让读者朋友对google protobuf有一个初步的印象,然后,再开始进入正题—-深入浅出地介绍google protobuf中用到的编码规则.下面言归正传,开始今天的话题. 1. Googl

2015第27周一非结构化数据

非结构化数据包括以下几个类型: 文本:在掌握了元数据结构时,机器生成的数据,如传感器等就一定能够进行解译.当然,流数据中有一些字段需要更加高级的分析和发掘功能. 交互数据:这里指的是社交网络中的数据,大量的业务价值隐藏其中.人们表达对人.产品的看法和观点,并以文本字段的方式存储.为了自动分析这部分数据,我们需要借助实体识别以及语义分析等技术.你需要将文本数据以实体集合的形式展现,并结合其中的关系属性. 图像:图像识别算法已经逐渐成为了主流.此外,这些技术也会产生实体,尽管获取关系以及舆情分析更加

MySQL 5.7:非结构化数据存储的新选择

本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL 5.7那样令我激动与期盼,10月MySQL 5.7 GA版本的发布,意味着MySQL数据库终于有能力在传统企业中向商业数据库发起挑战,开源的Linux操作系统干掉了封闭的Unix系统,MySQL会不会再一次逆袭商业产品?目前来看,或许很难,但是机会已经掌握在自己上手,后面的发展就看MySQL团队能

结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)

概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之间的数据,HTML文档就属于半结构化数据.它一般是自描述的,数据的结构和内容混在一起,没有明显的区分. 非结构化数据:不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和音频/视频信息等等. 数据模型 结构化数据:二维表(关系

非结构化数据

rlist扩展包 设计目标:更方便地在R中操作list对象 特性: 提供一系列高阶函数,可以方便地对list对象中的元素进行映射(mapping).筛选(filtering).分组(grouping).排序(sorting).合并(joining).更新(updating).搜索(searching)以及其他常用操作. 对管道操作(pipeline)友好,方便非结构化数据处理的流程化. 整合多种非结构化数据源的读写方法,方便接入数据源和输出数据. 合理利用R的元编程特性,简化使用. 基于表达式的