首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hbase上施用lucene创建索引及检索

2012-06-28 
hbase上应用lucene创建索引及检索hbasene(https://github.com/akkumar/hbasene)是开源项目,在hbase存储上

hbase上应用lucene创建索引及检索
    hbasene(https://github.com/akkumar/hbasene)是开源项目,在hbase存储上封装使用Lucene来创建索引,代码API非常简单,熟悉lucene的朋友可以很方便地创建。

    以下为测试代码,完成读取一张hbase上记录url和用户id的表,对其创建索引并进行简单的基于url的索引的代码。当取到search的结果后,就可以拿到想要的数据了。由于分词后将原始内容进行了反向索引,所以匹配就转化为了查询,速度相当快。

    其中getDocumentFromHTable为读取一张hbase上己有的表,将url字段提取出来创建content索引。

    创建索引的实质是用了HBaseIndexWriter和HBaseIndexReader两个分别继承自IndexWriter和IndexReader的类来做索引的读取和写入。同时使用了HBaseIndexStore来做存储。

    而创建索引使用的分词等仍然是使用标准的lucene API。

    注意hbasene使用的是hbase-0.20.5,需要修改少量源代码才能运行在0.90.x以上的版本中。

    这里对创建索引表使用到的结构做下简单的说明,因为是lucene入门级水平,所以各位请尽管拍砖讨论。

    索引表由以下几个CF构成:
fm.sequence: 记录sequenceId,在执行createLuceneIndexTable时需要写死该CF的row为sequenceId,qulifier为qual.sequence,值为-1。可以不用理会fm.doc2int: DocumentId,每个document都会有一个这样的id,如果Field.Store设置为YES,则能在索引表中查询到该id并得到完整的内容。fm.termVector: 向量偏移,用于模糊查找,记录偏移量等信息fm.termFrequency:分词后的关键词在每个document中出现的频率,qulifier为documentId,value为出现次数fm.fields:记录了content内容,row为documentId,value为document的全文内容,它和fm.docint是相反的,后者是反向索引。fm.payloads:扩展CF,目前还没有用到


1 楼 eryk 2011-08-24   您好,请问一下如果升级hbase版本到0.90 需要修改什么地方?我的qq:47020113,很急,请联系我,谢谢 2 楼 cnrainbing 2012-03-31   楼主你能否提供一下完整的例子,hbasene.jar 我们怎么获取啊,很急我的邮箱rainbing@live.com

热点排行