Una consulta de término con el Tablestore SDK for Java busca valores de campo o tokens que coincidan exactamente con el término de consulta y devuelve las filas coincidentes o su recuento total.
Requisitos previos
Instale Tablestore SDK for Java e inicialice el cliente.
Descripción de la función
Una consulta de término busca contenido en un campo especificado que coincida exactamente con el término de consulta. En campos no textuales como Keyword y Long, el valor completo del campo debe ser idéntico al término de consulta. En un campo Text (consulte String types), la fila coincide si algún token generado por el analizador es igual al término de consulta. El término de consulta en sí no se tokeniza.
Los tokens generados para un campo Text pueden variar según la configuración del analizador, las actualizaciones del algoritmo y el uso del lenguaje. Evite usar una consulta de término para buscar la cadena original completa de un campo Text. En su lugar, utilice una virtual column para asignar el campo origen al tipo Keyword y realice la consulta sobre la columna virtual.
Para invocar search, establezca el tipo de consulta como TermQuery y use SearchQuery para configurar el número de filas devueltas, el seguimiento del recuento total y otros comportamientos comunes de consulta.
SearchResponse search(SearchRequest request)
El siguiente ejemplo consulta filas cuyo valor del campo category coincide exactamente con books, y devuelve hasta 10 filas junto con el número total de filas coincidentes.
String tableName = "example_table";
String indexName = "example_index";
TermQuery termQuery = new TermQuery();
termQuery.setFieldName("category");
termQuery.setTerm(ColumnValue.fromString("books"));
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(termQuery);
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 |
Nombre de la tabla. |
|
indexName (obligatorio) |
String |
Nombre del índice de búsqueda. |
|
searchQuery (obligatorio) |
SearchQuery |
Condición de consulta y configuración general de la consulta. |
|
columnsToGet (opcional) |
SearchRequest.ColumnsToGet |
Configuración de las columnas a devolver. Si omite este parámetro, solo se devuelven las columnas de clave principal. |
|
timeoutInMillisecond (opcional) |
int |
Tiempo de espera de la consulta a nivel de solicitud, en milisegundos. El valor predeterminado es |
|
routingValues (opcional) |
|
Valores de clave principal para campos de enrutamiento personalizado. 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 |
Condición de consulta. Establezca este parámetro como |
|
offset (opcional) |
Integer |
Posición inicial de la consulta. |
|
limit (opcional) |
Integer |
Número máximo de filas a devolver. Establezca este parámetro en |
|
highlight (opcional) |
Highlight |
Configuración de resumen y resaltado para campos Text. Para más detalles sobre la configuración, consulte Summary and highlighting. |
|
collapse (opcional) |
Collapse |
Configuración de colapso de campos, que deduplica los resultados según un campo especificado. Para más detalles sobre la configuración, consulte Collapse query results. |
|
sort (opcional) |
Sort |
Orden de clasificación de los resultados. Para más detalles sobre la configuración, consulte Sort and paginate results. |
|
trackTotalCount (opcional) |
int |
Número máximo esperado de filas coincidentes a contar. El valor predeterminado es |
|
filter (opcional) |
SearchFilter |
Filtro que se aplica a los resultados de |
|
aggregationList (opcional) |
|
Configuración de agregaciones. Para más detalles sobre la configuración, consulte Aggregation. |
|
groupByList (opcional) |
|
Configuración de agrupamiento. Para más detalles sobre la configuración, consulte Aggregation. |
|
token (opcional) |
byte[] |
Token de paginación. Establezca este parámetro con el valor |
Condición de consulta
request.searchQuery.query es un objeto TermQuery que contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
fieldName (obligatorio) |
String |
Nombre del campo indexado que se va a consultar. |
|
term (obligatorio) |
ColumnValue |
Término de consulta. En un campo Text, el valor completo se utiliza como un solo término y no se tokeniza. |
|
weight (opcional) |
float |
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 influye en 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) |
|
Columnas de atributos a devolver. Configure 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 devueltos
search devuelve un objeto SearchResponse. La siguiente tabla describe los campos principales.
|
Nombre |
Tipo |
Descripción |
|
totalCount |
long |
Número de filas coincidentes. Invoque |
|
rows |
|
Filas devueltas por esta consulta. Invoque |
|
searchHits |
|
Coincidencias de la consulta. Invoque |
|
nextToken |
byte[] |
Token de la página siguiente. Invoque |
|
isAllSuccess |
boolean |
Indica si todas las particiones del índice se consultaron correctamente. Invoque |