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.
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 |
|
routingValues (opcional) |
|
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 |
|
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 |
|
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 |
|
filter (opcional) |
SearchFilter |
Un filtro que se aplica a los resultados de |
|
aggregationList (opcional) |
|
La configuración de agregación. Para obtener detalles sobre la configuración, consulte Aggregation. |
|
groupByList (opcional) |
|
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 |
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 |
|
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 |
Columnas devueltas
request.columnsToGet es un objeto SearchRequest.ColumnsToGet que contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
columns (opcional) |
|
Las columnas de atributos a devolver. Establezca este parámetro solo si tanto |
|
returnAll (opcional) |
boolean |
Especifica si se deben devolver todas las columnas de atributos de la tabla. Valor predeterminado: |
|
returnAllFromIndex (opcional) |
boolean |
Especifica si se deben devolver todas las columnas de atributos indexadas. Valor predeterminado: |
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 |
|
rows |
|
Las filas devueltas por esta consulta. Llame a |
|
searchHits |
|
Los aciertos de la consulta. Llame a |
|
nextToken |
byte[] |
El token de la página siguiente. Llame a |
|
isAllSuccess |
boolean |
Indica si todas las particiones del índice se consultaron correctamente. Llame a |