A consulta de termos com o Tablestore SDK for Java identifica valores de campo ou tokens exatamente iguais a qualquer termo da consulta e retorna as linhas correspondentes ou sua contagem total.
Pré-requisitos
Instale o Tablestore SDK for Java e inicialize o cliente.
Descrição do recurso
A consulta de termos compara um campo especificado com vários termos de pesquisa e retorna uma linha se qualquer termo atender à condição de correspondência exata. Em campos não textuais, como Keyword e Long, o valor completo do campo deve ser exatamente igual a um dos termos da consulta. Essa combinação OR assemelha-se à condição IN do SQL. Já em um campo Text (consulte String types), a linha corresponde se qualquer token gerado pelo analisador for exatamente igual a um dos termos da consulta. Os próprios termos da consulta não passam por tokenização.
Os tokens gerados para um campo Text podem variar conforme a configuração do analisador, atualizações de algoritmo e uso do idioma. Evite usar a consulta de termos para corresponder à string original completa de um campo Text. Em vez disso, utilize uma virtual column para mapear o campo source ao tipo Keyword e consulte a coluna virtual.
Para chamar search, defina o tipo de consulta como TermsQuery e use SearchQuery para configurar o número de linhas retornadas, o rastreamento da contagem total e outros comportamentos comuns de consulta.
SearchResponse search(SearchRequest request)
O exemplo a seguir consulta linhas cujo valor do campo category seja exatamente igual a books ou games. A operação retorna até 10 linhas e o número total de linhas correspondentes.
String tableName = "example_table";
String indexName = "example_index";
TermsQuery termsQuery = new TermsQuery();
termsQuery.setFieldName("category");
termsQuery.addTerm(ColumnValue.fromString("books"));
termsQuery.addTerm(ColumnValue.fromString("games"));
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(termsQuery);
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
Solicitação de pesquisa
request é um objeto SearchRequest que contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
tableName (obrigatório) |
String |
Nome da tabela. |
|
indexName (obrigatório) |
String |
Nome do índice de pesquisa. |
|
searchQuery (obrigatório) |
SearchQuery |
Condição de consulta e configurações gerais. |
|
columnsToGet (opcional) |
SearchRequest.ColumnsToGet |
Configurações das colunas de retorno. Se este parâmetro for omitido, apenas as colunas de chave primária serão retornadas. |
|
timeoutInMillisecond (opcional) |
int |
Tempo limite da consulta no nível da solicitação, em milissegundos. O valor padrão é |
|
routingValues (opcional) |
|
Valores de chave primária para campos de roteamento personalizado. Omita este parâmetro se o índice não utilizar roteamento personalizado. |
Configurações de consulta
request.searchQuery é um objeto SearchQuery que contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
query (obrigatório) |
Query |
Condição de consulta. Defina este parâmetro como |
|
offset (opcional) |
Integer |
Posição inicial da consulta. |
|
limit (opcional) |
Integer |
Número máximo de linhas a retornar. Defina este parâmetro como |
|
highlight (opcional) |
Highlight |
Configurações de resumo e destaque para campos Text. Para obter detalhes, consulte Summary and highlighting. |
|
collapse (opcional) |
Collapse |
Configurações de agrupamento de campo, que removem duplicatas dos resultados com base em um campo especificado. Para obter detalhes, consulte Collapse query results. |
|
sort (opcional) |
Sort |
Ordem de classificação dos resultados. Para obter detalhes, consulte Sort and paginate results. |
|
trackTotalCount (opcional) |
int |
Número máximo esperado de linhas correspondentes a contar. O valor padrão é |
|
filter (opcional) |
SearchFilter |
Filtro aplicado aos resultados de |
|
aggregationList (opcional) |
|
Configurações de agregação. Para obter detalhes, consulte Aggregation. |
|
groupByList (opcional) |
|
Configurações de agrupamento. Para obter detalhes, consulte Aggregation. |
|
token (opcional) |
byte[] |
Token de paginação. Defina este parâmetro com o valor |
Condição de consulta
request.searchQuery.query é um objeto TermsQuery que contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
fieldName (obrigatório) |
String |
Nome do campo indexado a consultar. |
|
terms (obrigatório) |
|
Termos da consulta. É possível especificar até 1.024 valores. Uma linha corresponde se qualquer termo atender à condição de correspondência exata. Para campos Text, cada valor é tratado como um termo completo, sem tokenização. |
|
weight (opcional) |
float |
Peso de relevância da condição de consulta. O valor deve ser um número de ponto flutuante positivo. Valores maiores aumentam a contribuição da condição para a pontuação de relevância BM25. Este parâmetro não afeta a correspondência nem o número de linhas retornadas, influenciando a ordem dos resultados apenas quando |
Colunas retornadas
request.columnsToGet é um objeto SearchRequest.ColumnsToGet que contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
columns (opcional) |
|
Colunas de atributo a retornar. Defina este parâmetro apenas se |
|
returnAll (opcional) |
boolean |
Define se todas as colunas de atributo da tabela devem ser retornadas. Valor padrão: |
|
returnAllFromIndex (opcional) |
boolean |
Define se todas as colunas de atributo indexadas devem ser retornadas. Valor padrão: |
Valores de retorno
search retorna um objeto SearchResponse. A tabela a seguir descreve os campos principais:
|
Nome |
Tipo |
Descrição |
|
totalCount |
long |
Número de linhas correspondentes. Chame |
|
rows |
|
Linhas retornadas pela consulta. Chame |
|
searchHits |
|
Acertos da consulta. Chame |
|
nextToken |
byte[] |
Token da próxima página. Chame |
|
isAllSuccess |
boolean |
Indica se todas as partições do índice foram consultadas com êxito. Chame |