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です。ipsこのクエリに絶対に答えるcf の行があることは間違いありません。

すべての列の検証クラスは です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 に答える