2

我正在尝试使用以下查询从 Cassandra 获取数据:

$cf=new ColumnFamily($data->cp,'ips');
$index[]=CassandraUtil::create_index_expression('c',1,'EQ');
$index[]=CassandraUtil::create_index_expression('begin_ip',1599147740,'GTE');
$index[]=CassandraUtil::create_index_expression('end_ip',1599147740,'LTE');
$index_clause = CassandraUtil::create_index_clause($index);
$rows=$cf->get_indexed_slices($index_clause);
foreach($rows AS $key=>$row)
{
    $result[]=$row;
}
var_dump($result);

但结果是null。我绝对确定 cf 中有一行ips绝对回答了这个查询。

所有列的验证类是IntegerType.

在 cassandra-cli 中相等查询:

get ips where c = int('1') and 
    begin_ip <= int('1599147740') and
    end_ip >= int('1599147740');

也得到null

我究竟做错了什么?

4

1 回答 1

3

首先,您是否在“c”列上创建了索引?

其次,您需要使用 'cassandra_IndexOperator::EQ' 和类似的表达式运算符而不是字符串。

于 2011-11-22T05:19:22.007 回答