Una consulta con comodines (WildcardQuery) ejecuta una búsqueda difusa. Su funcionamiento es similar al del operador LIKE en una base de datos.
Para implementar la funcionalidad NOT LIKE, debe usar un WildcardQuery junto con el parámetro mustNotQueries dentro de una consulta booleana. Para obtener más información, consulte Boolean query.
Descripción general
La consulta con comodines utiliza caracteres especiales para la coincidencia de patrones, lo que mejora la precisión y la eficiencia de las búsquedas.
Cuando usa la función WildcardQuery, puede emplear una cadena de consulta con comodines para hacer coincidir los datos. Esta función admite los comodines de asterisco () y signo de interrogación (?). El asterisco () representa cualquier secuencia de caracteres y el signo de interrogación (?) representa un solo carácter cualquiera. La cadena de consulta puede comenzar con un asterisco (*) o con un signo de interrogación (?). Por ejemplo, una búsqueda con table*e puede coincidir con tablestore.
El WildcardQuery es compatible con campos de los tipos de datos Keyword y FuzzyKeyword.
Keyword: tipo de datos básico de cadena. El rendimiento de las consultas difusas, como la consulta con comodines, sobre camposKeywordes deficiente en conjuntos de datos grandes y disminuye a medida que crece el volumen de datos.FuzzyKeyword: tipo de datos optimizado para consultas difusas como las consultas con comodines. Ofrece un rendimiento superior y estable que no se degrada de forma significativa cuando aumenta el tamaño del conjunto de datos.
Search Index ofrece tres tipos de consultas con comodines para cubrir diversos requisitos de coincidencia difusa. Para obtener más información, consulte la siguiente tabla.
Este tema describe cómo ejecutar un WildcardQuery en campos de tipo Keyword y FuzzyKeyword. Para conocer cómo implementar consultas difusas en campos de tipo Text, consulte Wildcard query based on tokenization.
|
Tipo |
Método de consulta |
Ventaja |
Desventaja |
|
Keyword |
WildcardQuery |
Compatible con Elasticsearch. |
El rendimiento de la consulta disminuye conforme crece la cantidad de datos indexados. |
|
FuzzyKeyword |
WildcardQuery |
Ofrece un rendimiento superior y estable que no se degrada de forma significativa cuando aumenta el tamaño de los datos. |
Provoca cierta expansión de los datos. |
|
Text |
MatchPhraseQuery |
Admite coincidencias sin distinción entre mayúsculas y minúsculas. |
Provoca cierta expansión de los datos. |
Notas de uso
El término de consulta en un WildcardQuery no puede superar los 32 caracteres, tanto para campos Keyword como FuzzyKeyword.
API
Para ejecutar una consulta con comodines, llame a la operación Search o parallel scan y establezca el tipo de consulta en WildcardQuery.
Parámetros
|
Parámetro |
Descripción |
|
fieldName |
Nombre de la columna que se va a consultar. |
|
value |
Cadena que contiene los comodines. No puede superar los 32 caracteres. |
|
query |
Tipo de consulta. Establezca este parámetro en |
|
getTotalCount |
Indica si se devuelve el número total de filas coincidentes. El valor predeterminado es Devolver el número total de filas coincidentes puede afectar el rendimiento de la consulta. |
|
weight |
Peso de la consulta. Es un número de punto flotante positivo que se usa para ordenar por puntuación en búsquedas de texto completo. Un peso mayor asigna una puntuación más alta a la columna en los resultados de la consulta. Este parámetro afecta las puntuaciones de los resultados devueltos, pero no influye en la cantidad de resultados obtenidos. |
|
tableName |
Nombre de la tabla de datos. |
|
indexName |
Nombre del Search Index. |
|
columnsToGet |
Especifica qué columnas se devuelven. Incluye las configuraciones returnAll y columns. De forma predeterminada, Si establece |
Modo de uso
Puede ejecutar una consulta con comodines desde la consola de Tablestore, mediante una herramienta de línea de comandos (CLI) o con un SDK. Antes de comenzar, complete las siguientes preparaciones:
Actualmente, un WildcardQuery sobre un campo FuzzyKeyword solo es compatible con los SDK de Tablestore.
-
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 cuente con uno.
Debe tener created a data table.
Se debe haber creado 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
Temas relacionados
Search Index admite diversos tipos de consultas 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, puede utilizar las funciones statistical aggregation o SQL query.
Si necesita exportar datos rápidamente sin importar el orden del conjunto de resultados, puede utilizar la función Parallel Scan.