2010-06-30 19 views
6

Diciamo che ho un nome di famiglia colonna Domande come di seguito: Domande = {
Chi sei tu: { username: "user1" }, qual è la risposta: { username: " user1 " } ... }Cassandra ricerca a testo integrale come

Come si cercano tutte le domande che contengono determinate parole? Ricevi tutte le domande che contengono la parola 'cosa'. Come faccio a farlo usando python o almeno Java?

risposta

3

Sono nuovo a Cassandra, ma l'interrogazione al suo interno è relativamente limitata, rispetto, ad esempio, a un database relazionale. (Questo è di design.) Sono abbastanza sicuro che non ci sia alcun supporto per la ricerca full-text in questo momento (questo potrebbe non essere nemmeno sulla tabella di marcia).

Potrebbe essere meglio andare con Lucene o qualcosa di simile a indicizzare il testo delle domande, sia all'interno del datastore Cassandra o in un datastore separato.

Sembra che ci sia almeno un progetto che sta tentando di integrare Lucene con Cassandra, e ci possono essere altri:

altro il modo per andare nel tuo caso potrebbe essere quello di suddividere le domande in parole e mantenere il tuo indice di parole alle domande; il tuo chilometraggio può variare qui, e qualcosa come Lucene ti darà senza dubbio una maggiore flessibilità nelle query.

4

Solandra (https://github.com/tjake/Solandra) è il nuovo nome di Lucandra.

Solandra è una combinazione di Cassandra e Solr (che si basa sul motore di ricerca full-text di Lucene).

Cassandra da solo non affronta la ricerca di testo, sebbene sia possibile implementare alcune indicizzazioni di base del testo creando famiglie di colonne indice (Google: indice secondario cassandra).

2

Sembra che si possa aggiungere "Ricerca DSE", da quelli che supportano Cassandra, e si avrebbe ciò di cui si ha bisogno. Funzionalità simili a Lucene/Solr ma tutti i dati memorizzati in Cassandra.

http://www.datastax.com/dev/blog/cassandra-with-solr-integration-details

avete una buona soluzione proposta dal ultima gent ma questa soluzione potrebbe servire il vostro scopo meglio da un punto di vista dell'usabilità.

Disclaimer: Lavoro per un fornitore NoSQL ma non su Cassandra.