Bonjour collègues développeurs, entre autres peu coincé dans l'interrogation à cassandra, im essayant de google comment ajouter restriction/conditionné dans cassandra et obtenu quelques exemples, donc je créer méthode comme ça, j'avec Hector pour API client:Comment rechercher une valeur dans Cassandra comme 'OERE' dans SQL?
IndexedSlicesQuery<String,String,String> indexedSlicesQuery=new IndexedSlicesQuery<String, String, String>(keyspace, serializer, serializer, serializers);
indexedSlicesQuery.addEqualsExpression(columnName, value);
indexedSlicesQuery.setReturnKeysOnly();
indexedSlicesQuery.setColumnFamily(COLUMNFAMILY);
indexedSlicesQuery.setStartKey("");
QueryResult<OrderedRows<String,String,String>> result=indexedSlicesQuery.execute();
return result;
est la bonne méthode? est la méthode "WHERE" est indexedSlicesQuery.addEqualsExpression(columnName, value);
?
tout corps peut m'aider? j'essaie encore ceci, parce que je suis une erreur comme ceci:
1296 [main] INFO me.prettyprint.cassandra.hector.TimingLogger - start[1306744089788] time[158] tag[READ.fail_]
Exception in thread "main" me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:No indexed columns present in index clause with operator EQ)
at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:42)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl$12.execute(KeyspaceServiceImpl.java:513)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl$12.execute(KeyspaceServiceImpl.java:495)
at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:101)
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:221)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:129)
at me.prettyprint.cassandra.service.KeyspaceServiceImpl.getIndexedSlices(KeyspaceServiceImpl.java:517)
at me.prettyprint.cassandra.model.IndexedSlicesQuery$1.doInKeyspace(IndexedSlicesQuery.java:140)
at me.prettyprint.cassandra.model.IndexedSlicesQuery$1.doInKeyspace(IndexedSlicesQuery.java:131)
at me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecute(ExecutingKeyspace.java:85)
at me.prettyprint.cassandra.model.IndexedSlicesQuery.execute(IndexedSlicesQuery.java:130)
iam désolé pour ma question débutant et mes mauvais english..thanks ..: D
MISE À JOUR
OK, après googling et googling, j'ai trouvé une solution basée sur ce Link, cette technique est de créer index_type lorsque créer une famille de colonnes, comme ceci (basé sur ce lien):
[[email protected]] create column family users with comparator=UTF8Type
... and column_metadata=[{column_name: full_name, validation_class: UTF8Type},
... {column_name: state, validation_class: UTF8Type},
... {column_name: birth_date, validation_class: LongType, index_type: KEYS}];
créer après cette famille de colonne indexée, vous pouvez interroger llike ordinray sql-cassandra cli..and je voudrais essayer que hector..thanks votre attention ..: D
pouvez-vous montrer brièvement votre recherche comme option pour cassandra dans la section de réponse. Cela peut être utile pour tous. – BobDroid