2013-07-10 2 views
0

В ч базе мой ключ строки имеет вид строку + дата, например: а + 01/03/2012поиск HBase между составными ключами - Java

Searching базируется на 3 параметрах (строка, дата, дата):

1.) Первая строка параметра должно совпадать с ключом строки перед тем знаком +, для этого я получил

Filter rowFilter=new RowFilter(CompareOp.EQUAL, new BinaryPrefixComparator(Bytes.toBytes(ticker))); 

, потому что это поиск префикса, если я ищу «аб», я буду получать результаты «ab» и «abc», что может быть условием получения точного соответствия?

2.) Дата второго параметра должна быть> затем строка ключевой даты извлечена из строки строки abc + 01/03/2012.

3.) Третья дата параметра должна быть <, а затем ключевая дата строки, извлеченная из строки строки abc + 01/03/2012.

В основном даты должны находиться только между датами.

Какое возможное решение для этого? thnx

ответ

0

Попытайтесь использовать сканирование с установочной стартовой строкой и стоп-строкой, , поэтому вы устанавливаете стартовую строку = строку + timestamp_1, stop row = string + timestamp_2.

Если вам нужно найти строку типа 'string *' + ts, вам необходимо написать собственный DatePostfixComparator (startTs, endTs).

Второй случай будет медленнее, чем первый.

+0

Спасибо за ответ, который работает для дат .. Мне все равно нужно выяснить что-то замену для префикса. – bigData

+0

Могу ли я использовать RegexStringComparator comp = new RegexStringComparator ("abc +"); на строке вместо столбца. – bigData

+0

RegexStringComparator может использоваться для строк, классификаторов и значений – Natalia

Смежные вопросы