我正试图通过此查询从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 。
我做错了什么?
答案 0 :(得分:3)
首先,您是否在'c'列上创建了索引?
其次,您需要对表达式运算符使用'cassandra_IndexOperator :: EQ',而不是字符串。