Todos los productos
Search
Centro de documentos

Tablestore:Wildcard query

Última actualización: Sep 03, 2026

Una consulta con comodines mediante el Tablestore SDK for Java utiliza los patrones * y ? para hacer coincidir datos en campos de tipo Keyword, Text o FuzzyKeyword.

Requisitos previos

Instale Tablestore SDK for Java e inicialice un cliente.

Descripción de la función

Una consulta con comodines compara un campo indexado con un patrón que contiene caracteres comodín. Su semántica de coincidencia es similar a la de LIKE en SQL, pero el patrón utiliza * y ? como caracteres comodín. En un campo Keyword o FuzzyKeyword, el patrón se compara con el valor completo del campo. En un campo Text, el patrón se compara con cada token generado a partir del valor del campo, y el patrón en sí no se tokeniza. Para obtener más información sobre los tipos de campo compatibles, consulte String types. La comparación distingue entre mayúsculas y minúsculas.

Un patrón puede comenzar con un carácter comodín y admite los siguientes caracteres comodín:

  • * coincide con cero o más caracteres.

  • ? coincide con cualquier carácter individual.

Por ejemplo, table*e coincide con tablestore. El patrón hang*u coincide con hangu y hangzhou. El patrón hang?u coincide con hangxu, pero no con hangu.

Para buscar valores que contengan una cadena específica, como con el patrón *word* (equivalente a WHERE field_a LIKE '%word%' en SQL), utilice token-based wildcard query. Con este enfoque, el rendimiento de la consulta no se degrada a medida que aumenta el volumen de datos.

Nota

Para excluir datos que coincidan con un patrón, agregue el objeto WildcardQuery a BoolQuery.mustNotQueries. Esta configuración equivale al operador NOT LIKE de SQL. Para obtener información sobre cómo configurar BoolQuery, consulte Boolean query.

Establezca el tipo de consulta como WildcardQuery cuando llame a search. Utilice SearchQuery para configurar el límite de resultados, el recuento total y otros parámetros generales de la consulta.

SearchResponse search(SearchRequest request)

El siguiente ejemplo busca valores Keyword en el campo product_name que coincidan con el patrón table*e. La consulta devuelve hasta 10 filas y el número total de coincidencias.

String tableName = "example_table";
String indexName = "example_index";

WildcardQuery wildcardQuery = new WildcardQuery();
wildcardQuery.setFieldName("product_name");
wildcardQuery.setValue("table*e");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(wildcardQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

Parámetros

Solicitud de búsqueda

request es un objeto SearchRequest que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

tableName (obligatorio)

String

El nombre de la tabla de datos.

indexName (obligatorio)

String

El nombre del índice de búsqueda.

searchQuery (obligatorio)

SearchQuery

La condición de consulta y la configuración general de la consulta.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

Las columnas que se devolverán. Si no se configura este parámetro, solo se devuelven las columnas de clave principal.

timeoutInMillisecond (opcional)

int

El tiempo de espera de la consulta a nivel de solicitud, en milisegundos. El valor predeterminado es -1, lo que indica que no se configura un tiempo de espera específico para la consulta.

routingValues (opcional)

List<PrimaryKey>

Los valores de clave principal que corresponden a campos de enrutamiento personalizados. Deje este parámetro sin configurar si no se ha definido un enrutamiento personalizado.

Configuración de la consulta

request.searchQuery es un objeto SearchQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

query (obligatorio)

Query

La condición de consulta. Establezca este parámetro como un objeto WildcardQuery para realizar una consulta con comodines.

offset (opcional)

Integer

La posición inicial de la consulta.

limit (opcional)

Integer

El número máximo de filas que se devolverán. Establezca este parámetro en 0 para no devolver ninguna fila.

highlight (opcional)

Highlight

La configuración de resumen y resaltado para campos Text. Para obtener detalles sobre la configuración, consulte Summary and highlighting.

collapse (opcional)

Collapse

La configuración de colapso de campos, que elimina duplicados en los resultados según un campo especificado. Para obtener detalles sobre la configuración, consulte Collapse query results.

sort (opcional)

Sort

El orden de clasificación de los resultados. Para obtener detalles sobre la configuración, consulte Sort and paginate results.

trackTotalCount (opcional)

int

El número máximo esperado de filas coincidentes que se contarán. El valor predeterminado es TRACK_TOTAL_COUNT_DISABLED, que deshabilita el recuento. Establezca este parámetro en TRACK_TOTAL_COUNT para contar todas las filas coincidentes. Un valor menor mejora el rendimiento de la consulta.

filter (opcional)

SearchFilter

Un filtro que se aplica a los resultados de query.

aggregationList (opcional)

List<Aggregation>

La configuración de agregación. Para obtener detalles sobre la configuración, consulte Aggregation.

groupByList (opcional)

List<GroupBy>

La configuración de agrupación. Para obtener detalles sobre la configuración, consulte Aggregation.

token (opcional)

byte[]

El token de paginación. Establezca este parámetro con el valor nextToken de la respuesta anterior para continuar leyendo filas. Cuando establece token, el SDK borra sort porque el token ya contiene las condiciones de ordenamiento.

Condición de consulta

request.searchQuery.query es un objeto WildcardQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

fieldName (obligatorio)

String

El nombre del campo Keyword, Text o FuzzyKeyword que se consultará.

value (obligatorio)

String

Un patrón de consulta que contiene caracteres comodín. La longitud máxima es de 32 caracteres y la comparación distingue entre mayúsculas y minúsculas. En un campo Keyword o FuzzyKeyword, el patrón se compara con el valor completo del campo. En un campo Text, el patrón se compara con cada token, y el patrón en sí no se tokeniza.

weight (opcional)

float

El peso de relevancia de la condición de consulta. El valor debe ser un número de punto flotante positivo. Un valor mayor otorga a la condición de consulta una mayor contribución a la puntuación de relevancia BM25. Este parámetro no afecta la coincidencia ni el número de filas devueltas. Solo afecta el orden de los resultados cuando se utiliza ScoreSort para ordenar por puntuación de relevancia. Valor predeterminado: 1.0.

Columnas devueltas

request.columnsToGet es un objeto SearchRequest.ColumnsToGet que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

columns (opcional)

List<String>

Las columnas de atributos que se devolverán. Configure este parámetro solo si tanto returnAll como returnAllFromIndex son false. Si omite este parámetro, solo se devuelven las columnas de clave principal.

returnAll (opcional)

boolean

Especifica si se deben devolver todas las columnas de atributos de la tabla de datos. El valor predeterminado es false.

returnAllFromIndex (opcional)

boolean

Especifica si se deben devolver todas las columnas de atributos indexadas. El valor predeterminado es false. No establezca returnAll y returnAllFromIndex en true simultáneamente.

Valores devueltos

search devuelve un objeto SearchResponse. La siguiente tabla describe los campos principales.

Nombre

Tipo

Descripción

totalCount

long

El número de filas coincidentes. Llame a getTotalCount() para obtener el valor. El valor devuelto depende de la configuración de trackTotalCount.

rows

List<Row>

Las filas devueltas por esta consulta. Llame a getRows() para obtener el valor. El número de filas no supera el valor de limit.

searchHits

List<SearchHit>

Las coincidencias de la consulta. Llame a getSearchHits() para obtener el valor. Si se configura highlight, este campo contiene los datos de la fila junto con los resultados de resumen y resaltado.

nextToken

byte[]

El token de la página siguiente. Llame a getNextToken() para obtener el valor. Si el valor no es null, establézcalo como token en la siguiente solicitud para continuar leyendo filas.

isAllSuccess

boolean

Indica si todas las particiones del índice se consultaron correctamente. Llame a isAllSuccess() para obtener el valor. Si el valor es false, la respuesta contiene resultados parciales y totalCount podría ser menor que el número real de filas coincidentes.