2010-08-09 16 views
4

J'ai joué avec le projet Cassandra d'Apache. Fait un peu de readin et j'ai quelques exemples assez complexes que j'ai fait, y compris l'insertion d'ensembles de données simples et par lots, la récupération d'un seul et plusieurs ensembles de données basés sur des clés. Certains des articles que j'ai regardé comprennentapache cassandra requête/recherche plein texte

http://www.rackspacecloud.com/blog/2010/05/12/cassandra-by-example http://github.com/digg/lazyboy http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model http://www.sodeso.nl/?p=80

J'ai une assez bonne compréhension des concepts expliqués et ont même mis en place une application simple.

Aucun des articles décrivent comment on pourrait s'y prendre pour l'exécution d'une requête où, par exemple, la requête est un terme de recherche d'un utilisateur a tapé.

Est-ce que quelqu'un sait comment ou peut suggérer comment j'irais à propos de l'exécution d'une telle requête? Ou peut-être un moyen de créer un index interrogeable, une recherche de texte intégral ou quelque chose qui se ferme même à distance?

Répondre

3

Vous allez probablement diviser le texte en mots, et ensuite utiliser ces mots comme clés de votre "index". Chaque mot contiendra la famille de colonnes commandées par horodatage avec la liste des identifiants de vos articles, messages, etc. Vous ne pouvez donc effectuer que des recherches simples sur des mots (mots). Lors de la recherche de plusieurs mots, utilisez l'intersection sur ces familles de colonnes.

C'est une approche très simple, si vous avez besoin de requêtes plus complexes, regardez Lucandra - http://github.com/tjake/Lucandra - Lucandra est un moteur de recherche fulltext avec Cassandra comme stockage backend.