基于HBasene(HBase+Lucene)搭建搜索应用例子

[url]https://github.com/akkumar/hbasene/wiki/hello-world[/url]

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTablePool;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.util.Version;

public class HelloWorldClass {

public static void main(final String[] args) throws IOException {
final String indexName = "myindex";
Configuration conf = HBaseConfiguration.create(); //hbase-site.xml in the classpath
//with hbase.zookeeper.quorum, property configured.
HBaseIndexStore.createLuceneIndexTable(indexName, conf, true);

HTablePool tablePool = new HTablePool(conf, 10);

//Write
HBaseIndexStore hbaseIndex = new HBaseIndexStore(tablePool, indexName);
HBaseIndexWriter writer = new HBaseIndexWriter(hbaseIndex, "id"); //Name of the primary key field.

Document doc = getDocument();
writer.addDocument(doc, new StandardAnalyzer(Version.LUCENE_30));

//Read/Search
IndexReader reader = new HBaseIndexReader(tablePool, indexName);
IndexSearcher searcher = new IndexSearcher(reader);
TopDocs docs = searcher.search(new TermQuery(new Term("content", "plays")),
3);
searcher.close();

}


private static Document getDocument() {
Document doc = new Document();
doc.add(new Field("content", "some content", Field.Store.NO,
Field.Index.ANALYZED_NO_NORMS));
doc.add(new Field("id", "some id", Field.Store.YES, Field.Index.NO));
return doc;

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值