A consulta por termo permite buscar dados que correspondam exatamente ao valor especificado de um campo. Esse tipo de consulta é semelhante a consultas baseadas em condições de correspondência de string. Se o tipo da coluna for TEXT, o Tablestore tokeniza a string e usa os tokens para correspondência com a palavra-chave. Uma linha atende às condições da consulta quando pelo menos um dos tokens na linha corresponde exatamente à palavra-chave. A palavra-chave usada para correspondência do valor da coluna em uma consulta por termo não é tokenizada.
Pré-requisitos
Uma instância OTSClient deve estar inicializada. Para mais informações, consulte Initialize an OTSClient instance.
Uma tabela de dados deve estar criada e com dados gravados. Para mais informações, consulte Create data tables e Write data.
Um índice de pesquisa deve estar criado para a tabela de dados. Para mais informações, consulte Create a search index.
Parâmetros
|
Parâmetro |
Descrição |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do índice de pesquisa. |
|
offset |
Posição a partir da qual a consulta atual começa. |
|
limit |
Número máximo de linhas que a consulta atual deve retornar. Para consultar apenas a quantidade de linhas que atendem às condições sem retornar dados específicos, defina o parâmetro limit como 0. |
|
queryType |
Tipo de consulta. Defina este parâmetro como TableStore.QueryType.TERM_QUERY. |
|
fieldName |
Nome da coluna a ser consultada. |
|
term |
Palavra-chave usada para correspondência com o valor da coluna em uma consulta por termo. Essa palavra não é tokenizada. Em vez disso, a palavra inteira é usada para correspondência com o valor da coluna. Se o tipo da coluna for TEXT, o Tablestore tokeniza a string e usa os tokens para correspondência com a palavra-chave. Uma linha atende às condições da consulta quando pelo menos um dos tokens na linha corresponde exatamente à palavra-chave. Por exemplo, se o valor de uma coluna do tipo TEXT em uma linha for "tablestore is cool", o valor pode ser tokenizado em "tablestore", "is" e "cool". A linha atende às condições da consulta ao especificar "tablestore", "is" ou "cool" como palavra-chave para correspondência com o valor da coluna. |
|
getTotalCount |
Especifica se o número total de linhas que atendem às condições da consulta deve ser retornado. O valor padrão é false, ou seja, o total de linhas que atendem às condições não é retornado. Definir este parâmetro como true compromete o desempenho da consulta. |
|
columnToGet |
Especifica se todas as colunas de cada linha que atende às condições da consulta devem ser retornadas. Configure os campos returnType e returnNames para este parâmetro.
|
Exemplo
O código de exemplo a seguir demonstra como consultar as linhas em que o valor da coluna Col_Keyword corresponde exatamente a "hangzhou":
/**
* Search the table for rows in which the value of Col_Keyword exactly matches "hangzhou".
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0.
query: { // Set the query type to TableStore.QueryType.TERM_QUERY.
queryType: TableStore.QueryType.TERM_QUERY,
query: {
fieldName: "Col_Keyword",
term: "hangzhou"
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. The default value of this parameter is false, which specifies that the total number of rows that meet the query conditions is not returned.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specific columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
FAQ
FAQ
Referências
-
Os índices de pesquisa oferecem suporte aos seguintes tipos de consulta: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query, vector query e exists query. Selecione o tipo de consulta adequado às suas necessidades de negócio.
Para ordenar ou paginar as linhas que atendem às condições da consulta, utilize o recurso de ordenação e paginação. Para mais informações, consulte Sorting and paging.
Para agrupar o conjunto de resultados com base em uma coluna específica, utilize o recurso de collapse (distinct). Dessa forma, dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).
Para analisar dados em uma tabela de dados — como obter valores extremos, soma e número total de linhas — execute operações de agregação ou instruções SQL. Para mais informações, consulte Aggregation e SQL query.
Para obter rapidamente todas as linhas que atendem às condições da consulta sem necessidade de ordenação, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Parallel scan.