2014-04-20 39 views
1

我想搜索的價值備案基地和我在Java中使用java API搜索Hbase記錄?

應用程序,我使用下面的代碼

HTable table = new HTable(conf, tableName); 
Put put = new Put(Bytes.toBytes(rowKey)); 
put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), 
     Bytes.toBytes(value)); 
table.put(put); 

我傳遞值

Put put = new Put(Bytes.toBytes("rowkey")); 
    put.add(Bytes.toBytes("family1"), Bytes.toBytes("qualifier1"), 
      Bytes.toBytes("this is test record")); 

這是我的GET實施

AM商鋪紀錄
Get get = new Get(Bytes.toBytes("rowkey")); 
      String[] family = { "row1" }; 
get.addColumn(Bytes.toBytes("family1"),Bytes.toBytes("qualifier1")); 
Result rs = table.get(get); 

現在我想搜索此記錄「這是測試記錄」的價值。

幫我找到這個記錄。

回答

2

使用過濾器,你可以做任何的元素的搜索,你可以通過不同的組合 爲SubstringComparator BinaryComparator

FilterList flist = new FilterList(); 

flist.addFilter(new RowFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("Predicatevalue")))); 
flist.addFilter(new QualifierFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("Subject value")))); 
flist.addFilter(new ValueFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("Objectvalue")))); 

對我來說這項工作。

1

看那get()方法上HTable和獲取類,它是類似於put()方法上HTablePut類。

+0

是的我知道搜索結果,但如何通過值來搜索行「這是測試記錄」。 – jayesh

+0

您可以使用過濾器。 – mashuai

+0

你能舉一個例子嗎? – jayesh