Una consulta por prefijo (PrefixQuery) busca las filas de un índice de búsqueda donde el valor de un campo comienza con una cadena específica.
Descripción general
Una PrefixQuery coincide con los valores de columna que comienzan con un prefijo determinado. El comportamiento de la consulta depende del tipo de datos de la columna:
Keyword: tipo de datos de cadena básico. A medida que aumenta el volumen de datos, el rendimiento de la consulta disminuye. Este tipo solo es adecuado para conjuntos de datos pequeños.
FuzzyKeyword: tipo de datos optimizado para búsquedas difusas, como las consultas por prefijo. El rendimiento de la consulta se mantiene estable sin importar el volumen de datos. Se recomienda este tipo para la mayoría de los escenarios de consulta por prefijo.
Text: los valores de la columna se dividen en tokens antes de indexarse. Una fila coincide si al menos uno de los tokens resultantes comienza con el prefijo especificado. Debido a la incertidumbre de la tokenización, los resultados de la consulta pueden ser impredecibles. Este tipo de datos se admite únicamente por motivos de compatibilidad y debe usarse con precaución.
Cómo elegir un tipo de datos
A continuación se muestra una tabla que resume la idoneidad de cada tipo de datos para las consultas por prefijo.
|
Tipo |
Rendimiento |
Recomendación |
|
Keyword |
Disminuye conforme aumenta el volumen de datos |
Solo para conjuntos de datos pequeños |
|
FuzzyKeyword |
Estable sin importar el volumen de datos |
Recomendado para la mayoría de los escenarios |
|
Text |
Resultados impredecibles debido a la tokenización |
No recomendado |
Ejemplos de coincidencia por prefijo
Suponga que una columna contiene los siguientes valores: hangzhou, beijing, shanghai y harbin.
El prefijo
hangcoincide conhangzhou, pero no conbeijing,shanghainiharbin.El prefijo
hacoincide tanto conhangzhoucomo conharbin.
API
Puede ejecutar una consulta por prefijo mediante la API Search o ParallelScan. El tipo de consulta es PrefixQuery.
Parámetros
|
Parámetro |
Descripción |
|
query |
Tipo de consulta. Establézcalo en PrefixQuery. |
|
fieldName |
Nombre de la columna de destino. |
|
prefix |
Cadena de prefijo que se compara con los valores de la columna. En las columnas de tipo Text, los valores se dividen en tokens antes de la comparación. Una fila coincide si al menos un token comienza con el prefijo especificado. |
|
getTotalCount |
Indica si se devuelve el número total de filas coincidentes. El valor predeterminado es Establecer este parámetro en |
|
weight |
El peso de la consulta debe ser un número de punto flotante positivo. En los escenarios de búsqueda de texto completo, este parámetro ajusta la contribución de la columna a la puntuación de relevancia BM25. Un valor más alto incrementa la influencia de la columna en la clasificación. Este parámetro no afecta el conjunto de resultados devuelto, solo la puntuación BM25 de cada fila en los resultados. |
|
tableName |
Nombre de la tabla de datos. |
|
indexName |
Nombre del índice de búsqueda. |
|
columnsToGet |
Especifica las columnas que se devuelven para cada fila coincidente. Configure esto mediante los parámetros De forma predeterminada, Establezca |
Uso
Puede ejecutar consultas por prefijo desde la consola de Tablestore, la herramienta de línea de comandos o un SDK. Antes de empezar, complete los siguientes requisitos previos.
Actualmente, PrefixQuery en columnas FuzzyKeyword solo se admite mediante el SDK de Tablestore. La consola y la herramienta de línea de comandos solo admiten columnas Keyword.
-
Use una cuenta de Alibaba Cloud o un usuario de RAM con los permisos obligatorios para las operaciones de Table Store. Para otorgar permisos a un usuario de RAM, consulte Grant permissions to a RAM user by using a RAM policy.
Si utiliza un SDK o una herramienta de línea de comandos, create an AccessKey para su cuenta de Alibaba Cloud o usuario de RAM en caso de que no tenga uno.
Debe tener created a data table.
Se creó un Search Index para la tabla de datos.
Si utiliza un SDK, initialize the Tablestore Client.
Si utiliza la herramienta de línea de comandos, descargue e inicie la herramienta. Después, configure la conexión a su instancia y seleccione la tabla de destino. Para obtener más información, consulte Download the command-line tool, Start the tool and configure connection information y Data table operations.
Facturación
Consultar datos mediante un Search Index consume capacidad de procesamiento de lectura. Para obtener más información, consulte Search Index metering and billing.
Preguntas frecuentes
Documentos relacionados
Search Index admite diversos tipos de consulta para buscar datos de forma multidimensional, entre ellos term query, terms query, match all query, match query, phrase match query, range query, prefix query, suffix query, wildcard query, token-based wildcard query, boolean query, geo query, nested query, vector search, y exists query.
Al consultar datos, puede sort and paginate el conjunto de resultados o ejecutar collapsing (deduplication).
Para analizar datos, como buscar el valor máximo o mínimo, calcular una suma o contar filas, utilice las funciones statistical aggregation o SQL query.
Si necesita exportar datos rápidamente sin importar el orden del conjunto de resultados, utilice la función Parallel Scan.