hbasene
场景:基于HBasene(HBase+Lucene)筹建搜索应用例子
基于HBasene(HBase+Lucene)搭建搜索应用例子
https://github.com/akkumar/hbasene/wiki/hello-world
基于HBasene(HBase+Lucene)搭建搜索应用例子
https://github.com/akkumar/hbasene/wiki/hello-world
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; } }