use of me.prettyprint.hector.api.Keyspace in project cassandra-indexing by hmsonline.
the class IndexUtil method fetchRow.
public static Map<String, String> fetchRow(Cluster cluster, String keyspace, String columnFamily, String key, Collection<String> indexColumns) throws Exception {
Keyspace ks = HFactory.createKeyspace(keyspace, cluster);
SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(ks, StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
sliceQuery.setColumnFamily(columnFamily);
sliceQuery.setKey(key);
if (!containsMultiValueColumn(indexColumns)) {
// Fetch specific columns
List<String> columnNames = new ArrayList<String>();
for (String indexColumn : indexColumns) {
columnNames.add(indexColumn);
}
String[] varargs = columnNames.toArray(new String[0]);
sliceQuery.setColumnNames(varargs);
} else if (indexColumns.size() == 1) {
// Fetch a slice range
String columnPrefix = getColumnPrefix(indexColumns.iterator().next());
sliceQuery.setRange(columnPrefix, columnPrefix + Character.MAX_VALUE, false, 2000);
} else {
// MAX_COLUMNS
sliceQuery.setRange("", "", false, 2000);
}
QueryResult<ColumnSlice<String, String>> row = sliceQuery.execute();
ColumnSlice<String, String> columns = row.get();
Map<String, String> result = new HashMap<String, String>();
for (HColumn<String, String> column : columns.getColumns()) {
result.put(column.getName(), column.getValue());
}
return result;
}
Aggregations