Todos los productos
Search
Centro de documentos

Tablestore:Prefix query

Última actualización: Sep 03, 2026

Una consulta por prefijo con el Tablestore SDK for Java busca valores de campo o tokens que comienzan con una cadena específica y devuelve las filas coincidentes o su conteo total.

Requisitos previos

Instale Tablestore SDK for Java e inicialice el cliente.

Descripción de la función

Una consulta por prefijo busca valores de campo o tokens en un campo específico que comienzan con la cadena de consulta. Para los campos Keyword y FuzzyKeyword (consulte String types), el valor completo del campo debe comenzar con la cadena de consulta y la coincidencia distingue entre mayúsculas y minúsculas. En un campo Text, una fila coincide si algún token generado por el analizador comienza con la cadena de consulta. La cadena de consulta en sí no se tokeniza.

Nota

Para conjuntos de datos grandes, utilice el tipo FuzzyKeyword, que está optimizado para consultas difusas. El rendimiento de la consulta por prefijo en un campo Keyword disminuye a medida que crecen los datos indexados, por lo que debe usar este tipo solo para conjuntos de datos pequeños. El tipo Text es compatible por razones de compatibilidad. La tokenización hace que sus resultados dependan de la configuración y no sean adecuados para buscar cadenas completas.

Para llamar a search, establezca el tipo de consulta como PrefixQuery y use SearchQuery para configurar el número de filas devueltas, el seguimiento del conteo total y otros comportamientos comunes de la consulta.

SearchResponse search(SearchRequest request)

El siguiente ejemplo busca filas cuyo campo category es del tipo FuzzyKeyword y comienza con hang. La consulta devuelve hasta 10 filas y el número total de filas coincidentes.

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

PrefixQuery prefixQuery = new PrefixQuery();
prefixQuery.setFieldName("category");
prefixQuery.setPrefix("hang");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(prefixQuery);
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.

indexName (obligatorio)

String

El nombre del índice de búsqueda.

searchQuery (obligatorio)

SearchQuery

La condición de consulta y la configuración común de la consulta.

columnsToGet (opcional)

SearchRequest.ColumnsToGet

La configuración de columnas devueltas. Si omite 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, que no establece un tiempo de espera de consulta por separado.

routingValues (opcional)

List<PrimaryKey>

Los valores de clave principal para los campos de enrutamiento personalizados. Omita este parámetro si el índice no utiliza 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 PrefixQuery para una consulta por prefijo.

offset (opcional)

Integer

La posición inicial de la consulta.

limit (opcional)

Integer

El número máximo de filas a devolver. 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 deduplica 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 a contar. El valor predeterminado es TRACK_TOTAL_COUNT_DISABLED, que deshabilita el conteo. 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 PrefixQuery que contiene los siguientes parámetros.

Nombre

Tipo

Descripción

fieldName (obligatorio)

String

El nombre del campo indexado a consultar.

prefix (obligatorio)

String

La cadena de consulta. Para un campo Keyword o FuzzyKeyword, el valor del campo debe comenzar con esta cadena. Para un campo Text, al menos un token debe comenzar con esta cadena. La cadena de consulta 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 usa 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 a devolver. Establezca 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. Valor predeterminado: false.

returnAllFromIndex (opcional)

boolean

Especifica si se deben devolver todas las columnas de atributos indexadas. Valor predeterminado: false. Este parámetro y returnAll no pueden ser ambos true.

Valores de retorno

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 excede limit.

searchHits

List<SearchHit>

Los aciertos de la consulta. Llame a getSearchHits() para obtener el valor. Si highlight está configurado, este campo contiene los datos de la fila y 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 puede ser menor que el número real de filas coincidentes.