2011-06-09 3 views
0
create column family Records with 
      comparator = UTF8Type and 
      column_metadata = 
      [ 
      {column_name: name, validation_class: UTF8Type}, 
      {column_name: label, validation_class: UTF8Type}, 
      {column_name: releasedate, validation_class: LongType}, 

Je veux interroger les enregistrements par Row-Key et ensuite faire une vérification sur le releasedate (une valeur d'horodatage). Autant que je comprenne ceci: http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes, ceci devrait facilement être possible pendant que j'interroge d'abord par la clef de rangée et rétrécis ensuite par le releaseate.Cassandra - Hector: Recherche par Row-Key mais filtre par une autre expression?

Mais comment faire cela dans hector?

L'utilisation de SliceQuery ne fonctionne pas. Je sais qu'il y a IndexedSliceQuery mais je n'ai pas d'index secondaire (comme on peut le voir). Est-il toujours correct et un must pour utiliser IndexedSliceQuery (même si je n'ai pas d'index secondaire) ??

Merci Markus

Répondre

2

Si vous savez que vous devez interroger vos données par date de sortie, vous devez le stocker de cette manière avec Apache Cassandra.

Cela peut se faire de deux façons: - ajuster les méta-données dans la définition de la famille de la colonne ci-dessus pour inclure un index sur releaseddate:

update column family Records with column_metadata=[{column_name: releasedate, validation_class: LongType, index_name:releasedate_idx, index_type:0}];  
  • ou créer une famille de colonne supplémentaire qui utilise la sortie date comme clé et stocke les clés de la famille de colonnes d'enregistrement en tant que noms de colonnes. Cela fait essentiellement la même chose que la définition d'index secondaire ci-dessus, mais rend le processus de gestion des mises à jour et d'interrogation plus manuel.

Je suggérerais la première approche, vous donnant accès à IndexedSlicesQuery et tout son bien.

2

Désolé, mélange ligne côté serveur et le filtrage de la colonne est pas possible avec l'API Cassandra. (Et comme cela n'a de sens que pour les partitions de sauvegarde, cela ne changera probablement pas.)

Questions connexes