2012-08-13 6 views
8

El debajo de consulta CQL resultaron en un error diciendoCQL y el rango en columnas indexadas secundarias

No hay columnas indexadas presente en por-columnas cláusula con igual operador

Obsérvese que la columna age ya estaba secundario indexado

select * from employee where age > 25 

Sin embargo, tuve otra segunda columna indexada type. Entonces cuando usé eso ...

select * from employee where type='engineer' and age > 25 

Parecía obtener los resultados adecuados.

¿Cómo sucede esto?

Respuesta

12

Los índices secundarios incorporados de Cassandra son más un índice de estilo almohadilla, en comparación con un árbol B.

Como tal, se requiere al menos una comparación de igualdad para realizar búsquedas de manera eficiente (cualquier predicado de columna adicional resulta en filtrado tardío de las coincidencias de igualdad).

Pruebe la siguiente página wiki para obtener un punto de partida decente para preguntas sobre los índices secundarios de Cassandra: http://wiki.apache.org/cassandra/SecondaryIndexes

Cuestiones relacionadas