En esta página, se describen las funciones de búsqueda y los índices secundarios.
Cuando decidas entre los índices de búsqueda y los índices secundarios, ten en cuenta que los índices de búsqueda deben ser la opción predeterminada para los casos de uso de texto completo, y los índices secundarios deben ser la opción predeterminada para todo lo demás. En la siguiente tabla, se describe cuándo usar cada tipo de índice.
Función | Índice secundario | Índice de la Búsqueda |
---|---|---|
Orden | El índice se ordena según todas las columnas de clave de índice. | El índice de búsqueda solo se puede ordenar por un máximo de dos columnas INT64 controladas por el usuario. |
Arrays | Los arrays no se admiten como claves de índices secundarios. | Los índices de búsqueda admiten la indexación de arrays. Todos los tokens de un documento se encuentran en la misma división. Como resultado, las transacciones que cambian 1 fila solo escriben en una división de índice. |
Búsquedas | La búsqueda por clave de índice solo necesita acceder a una división. | Por lo general, las consultas que usan el índice de búsqueda deben leer de todas las divisiones de una partición determinada. La única excepción es la coincidencia de patrones Top-K. |
Indexación de varias columnas | Los índices secundarios pueden incluir varias columnas de clave. Las consultas deben buscar datos por prefijo de columnas de clave de índice para una ejecución eficiente. | Los índices de búsqueda pueden indexar varias columnas. Las consultas pueden especificar expresiones lógicas complejas (disyunciones, conjunciones, negaciones) en cualquier subconjunto de las columnas indexadas y, aun así, ejecutarse de manera eficiente. |
Intersección de índices | Los usuarios pueden volver a escribir su consulta para unir varios índices secundarios. | La intersección de varias columnas indexadas se implementa como una unión en zigzag local eficiente, seguida de una unión de combinación distribuida (que combina los resultados de todas las divisiones relevantes). |
Lee datos | API de consulta o lectura de SQL | Consulta en SQL |
Además de la semántica, la sintaxis de la sentencia DDL para crear un índice de búsqueda es diferente de la sintaxis de DDL para crear un índice secundario:
- Las columnas indexadas se definen de forma independiente del orden de clasificación en el índice de búsqueda.
- El orden de las columnas
TOKENLIST
en la cláusulaON
de la sentenciaCREATE SEARCH INDEX
no es importante.
¿Qué sigue?
- Obtén más información sobre los índices de búsqueda.
- Obtén información sobre los índices secundarios.