Para obtener un instructivo paso a paso sobre cómo implementar la búsqueda de vectores de principio a fin, consulta la guía sobre cómo realizar una búsqueda de vectores.
Parámetros de ajuste
Los siguientes parámetros de índice y consulta se usan para encontrar el equilibrio adecuado entre la recuperación y las consultas por segundo (QPS).
| Parámetro de ajuste | Descripción | Tipo de opción |
|---|---|---|
mode |
Define el índice de ScaNN como un índice ajustado automáticamente o de forma manual. Las opciones disponibles son las siguientes:
Para obtener más información, consulta Crea un índice de ScaNN. |
Creación de índices (opcional) |
max_num_levels |
Es la cantidad máxima de niveles de centroides del árbol de agrupamiento en clústeres de K-means. Para obtener orientación sobre cómo establecer este valor, consulta Cómo ajustar un índice de ScaNN.
Los valores disponibles son los siguientes:
Si configuras |
Creación de índices (opcional) |
num_leaves |
Es la cantidad de particiones que se aplicarán a este índice. El valor máximo es 30000000. Para obtener más información sobre cómo elegir este valor, consulta Cómo ajustar un índice de ScaNN y Prácticas recomendadas para ajustar índices de ScaNN.
|
Creación de índices (obligatorio para los índices ajustados manualmente) |
quantizer |
Es el tipo de cuantificador que deseas usar para el árbol de K-means. El valor predeterminado se establece en SQ8, lo que proporciona un mejor rendimiento de las búsquedas con una pérdida mínima de recuperación (por lo general, menos del 1 o el 2%).Establécelo en FLAT si se requiere una recuperación del 99% o más. |
Creación de índices (opcional) |
scann.enable_pca |
Habilita el análisis de componentes principales (PCA), que es una técnica de reducción de dimensiones que se usa para reducir automáticamente el tamaño de la incorporación cuando es posible. Esta opción está habilitada de forma predeterminada. Configúrala como false si observas un deterioro en la recuperación. |
Creación de índices (opcional) |
auto_maintenance |
Mantener automáticamente un índice de ScaNN para que, a medida que crezca tu conjunto de datos, AlloyDB Omni analice y actualice los centroides, y divida las particiones grandes de valores atípicos Esto mejora automáticamente las QPS y los resultados de la búsqueda. Para obtener más información, consulta Cómo mantener índices automáticamente. |
Creación de índices (opcional) |
scann.pct_leaves_to_search |
Administra automáticamente la cantidad de particiones en las que busca un índice de vectores. Para obtener más información, consulta Porcentaje de búsqueda de particiones. | |
scann.num_leaves_to_search
|
Es la cantidad absoluta de particiones en las que se realizará la búsqueda. Esto te permite equilibrar la recuperación de la búsqueda y las QPS. El valor predeterminado es el 1% de Los valores más altos generan una mejor recuperación de la búsqueda, pero una menor cantidad de QPS. Del mismo modo, los valores más bajos generan una peor recuperación de la búsqueda, pero una mejor QPS. |
Tiempo de ejecución de la consulta (opcional) |
scann.pre_reordering_num_neighbors
|
Especifica la cantidad de vecinos candidatos que se deben tener en cuenta durante las etapas de reordenamiento una vez que la búsqueda inicial identifica un conjunto de candidatos. Establece este parámetro en un valor superior a la cantidad de vecinos que deseas que devuelva la búsqueda. Los valores más altos generan una mejor recuperación, pero una menor cantidad de QPS.
El valor predeterminado es |
Tiempo de ejecución de la consulta (opcional) |
scann.num_search_threads |
Es la cantidad de subprocesos de búsqueda para la búsqueda de múltiples subprocesos. Esto puede ayudar a reducir la latencia de una sola búsqueda usando más de un subproceso para la búsqueda de ANN de ScaNN en aplicaciones sensibles a la latencia. Este parámetro de configuración no mejora la latencia de una sola consulta si la base de datos ya está vinculada a la CPU. El valor predeterminado es 2. |
Tiempo de ejecución de la consulta (opcional) |
|
Cuando se establece en relaxed_order, la marca de la base de datos aborda la recuperación insuficiente. Puede ocurrir una recuperación insuficiente cuando la recuperación observada de una búsqueda cae por debajo de la recuperación objetivo, lo que es más probable cuando se usan filtros. Este parámetro de configuración ayuda a alcanzar la recuperación objetivo, ya que permite que el análisis vectorial siga buscando más allá del límite de num_leaves_to_search hasta que se encuentre una cantidad suficiente de resultados. |
Tiempo de ejecución de la consulta (opcional) |
|
Esta marca de base de datos establece un límite superior para el porcentaje de hojas totales que se pueden visitar en las búsquedas que ejecutas con scann.satisfy_limit habilitado. Este es el único límite superior de la GUC disponible y se aplica a los modos de búsqueda manual y automática. Evita que la búsqueda se exceda, lo que podría reducir significativamente el rendimiento. Esto se aplica cuando scann.satisfy_limit está activado.Puedes establecer este parámetro en cualquier valor entre 0 y 100. El valor predeterminado es 15%. Este valor predeterminado se basa en el principio de que, si una búsqueda necesita examinar más del 15% de las hojas, es probable que el filtro sea lo suficientemente selectivo como para que la búsqueda de vecino más cercano aproximado (ANN) no proporcione ningún beneficio, lo que hace que el prefiltrado de vecino más cercano (KNN) sea una opción más adecuada. |
Tiempo de ejecución de la consulta (opcional) |