2011-11-11 3 views
2

Y at-il un moyen d'obtenir des données de Cassandra à travers phpcassa en utilisant une clause?Obtenir des données de cassandra en utilisant les clauses

Je dois sélectionner toutes les lignes où sum<10. Par exemple, la fonction dans phpcassa get_range() sélectionne uniquement les lignes qui sont égales à certaines valeurs.

+0

i trouvé la solution Il faut utiliser 'cassandra_IndexOperator' lors de la création expression d'index http://wiki.apache.org/cassandra/API – Undrooleek

Répondre

2

Normalement avec PHPCassa, vous devez utiliser les index:

Comme par http://thobbs.github.com/phpcassa/tutorial.html // légèrement améliorée:

<?php 
$column_family = new ColumnFamily($conn, 'Indexed1'); 
$index_exp_eq = CassandraUtil::create_index_expression('gender', 'male', $op='EQ'); 
$index_exp_gt = CassandraUtil::create_index_expression('sum', 10, $op='GT'); 
$index_clause = CassandraUtil::create_index_clause(array($index_exp_eq, $index_exp_gt)); 
$rows = $column_family->get_indexed_slices($index_clause); 
// returns an Iterator over: 
// array('winston smith' => array('birthdate' => 1984)) 

foreach($rows as $key => $columns) { 
    // Do stuff with $key and $columns 
    Print_r($columns) 
} 
?> 

Avec votre scénario, vous ne pouvez pas simplement une seule expression d'index avec la somme < 10 .. Vous devez avoir la première expression d'index avec un opérateur EQ et les expressions d'index suivantes avec d'autres opérateurs.

+0

mais si un pas de colonnes qui est égale à toutes les données j'ai? – Undrooleek

Questions connexes