码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-02-05 11:49:14      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

这里的静态结构化数据,是指从关系型数据库中抽取存储在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

 

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

标签:

原文地址:http://www.cnblogs.com/ethanhe/p/5182731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!