2010-06-30 22 views
6

Digamos que tengo unas preguntas familia de columnas nombradas como a continuación: Preguntas = {
¿Quién eres tú: { nombre de usuario: "usuario1" }, ¿Cuál es la respuesta: { nombre de usuario: " usuario1 " } ... }Cassandra búsqueda de texto completo como

¿Cómo busco todas las preguntas que contienen ciertas palabras? Obtenga todas las preguntas que contengan la palabra "qué". ¿Cómo lo hago usando python o al menos Java?

Respuesta

3

Soy nuevo en Cassandra, pero consultar en él es relativamente limitado, en comparación con, por ejemplo, una base de datos relacional. (Esto es por diseño.) Estoy bastante seguro de que no hay soporte para la búsqueda de texto completo en este momento (puede que ni siquiera esté en la hoja de ruta).

Puede que sea mejor ir con Lucene o algo similar para indexar el texto de las preguntas, ya sea dentro del almacén de datos de Cassandra o en un almacén de datos separado.

Parece que hay al menos un proyecto que intenta integrar Lucene con Cassandra, y puede haber otros:

Otro El camino a seguir en su caso podría ser dividir las preguntas en palabras y mantener su propio índice de palabras a preguntas; su kilometraje puede variar aquí, y algo como Lucene sin duda le dará una mayor flexibilidad en las consultas.

4

Solandra (https://github.com/tjake/Solandra) es el nuevo nombre de Lucandra.

Solandra es una combinación de Cassandra y Solr (que se basa en el motor de búsqueda de texto completo Lucene).

Cassandra por sí sola no aborda la búsqueda de texto, aunque podría implementar cierta indexación de texto básica mediante la creación de familias secundarias de columnas de índice (Google: índice secundario de cassandra).

2

Parece que podría agregar "Búsqueda DSE", de las personas que respaldan a Cassandra, y tendría lo que necesita. Capacidades similares a Lucene/Solr, pero todos los datos almacenados en Cassandra.

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

que tenga una buena solución dada por el último caballero, pero esta solución puede servir a su propósito mejor desde un punto de vista de usabilidad.

Descargo de responsabilidad: Yo trabajo para un vendedor de NoSQL pero no en Cassandra.

Cuestiones relacionadas