A consulta de frase correspondente assemelha-se à consulta de correspondência, mas avalia também a posição dos tokens. Uma linha atende à condição de consulta apenas quando a ordem e a posição dos tokens na linha coincidem com a ordem e a posição dos tokens contidos na palavra-chave. Se o método de tokenização do campo consultado for a tokenização difusa, a consulta de frase correspondente apresentará latência menor que a consulta curinga.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar tabelas de dados e Gravar dados.
Índice de busca criado para a tabela de dados. Para mais informações, consulte Criar um índice de busca.
Parâmetros
|
Parâmetro |
Descrição |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do índice de busca. |
|
offset |
Posição inicial da consulta. |
|
limit |
Número máximo de linhas retornadas pela consulta. Para obter apenas a contagem de linhas que atendem às condições de consulta, sem recuperar os dados específicos, defina o parâmetro limit como 0. |
|
queryType |
Tipo de consulta. Para usar a consulta de frase correspondente, defina este parâmetro como TableStore.QueryType.MATCH_PHRASE_QUERY. |
|
fieldName |
Nome do campo a ser correspondido. A consulta de frase correspondente aplica-se a campos TEXT. |
|
text |
Palavra-chave usada para corresponder ao valor do campo na consulta de frase correspondente. Se o campo alvo for do tipo TEXT, a palavra-chave será dividida em múltiplos tokens conforme o tipo de analisador especificado na criação do índice de busca. Caso não haja especificação, o sistema aplica por padrão a tokenização de palavra única. Para mais informações, consulte Tokenização. Por exemplo, uma consulta baseada na frase "this is" encontrará "..., this is tablestore" e "this is a table", mas não retornará "this table is ..." nem "is this a table". |
|
getTotalCount |
Define se o total de linhas correspondentes deve ser retornado. Valor padrão: false. Habilitar esta opção (true) pode impactar negativamente o desempenho da consulta. |
|
columnToGet |
Determina quais colunas retornar para cada linha correspondente. Configure returnType e returnNames conforme necessário.
|
Exemplos
O código abaixo demonstra como executar uma consulta de frase correspondente para localizar linhas onde o valor de Col_Text contenha a frase exata "hangzhou shanghai":
/**
* Search the table for rows in which the value of Col_Text matches the entire phase "hangzhou shanghai" in order.
* Tablestore returns the number of rows that match the phrase and part of the matched rows in this query.
*/
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 returning specific data, set the limit parameter to 0.
query: {// Set the query type to TableStore.QueryType.MATCH_PHRASE_QUERY.
queryType: TableStore.QueryType.MATCH_PHRASE_QUERY,
query: {
fieldName: "Col_Text", // Specify the column that you want to match.
text: "hangzhou shanghai" // Specify the phase that you want to match.
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specified 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
Referências
Referências
-
Os índices de busca suportam os seguintes tipos de consulta: consulta de termo, consulta de termos, consulta match all, consulta de correspondência, consulta de frase correspondente, consulta de prefixo, consulta de intervalo, consulta curinga, consulta booleana, consulta geográfica, consulta aninhada, consulta vetorial e consulta exists. Escolha o tipo adequado conforme sua necessidade de negócio.
Para ordenar ou paginar as linhas resultantes, utilize o recurso de classificação e paginação. Consulte Classificação e paginação para detalhes.
Caso precise eliminar duplicatas com base em uma coluna específica, use o recurso de colapso (distinct). Assim, cada valor distinto desse tipo aparecerá apenas uma vez nos resultados. Veja mais em Colapso (distinct).
Para análises estatísticas sobre os dados da tabela, como valores extremos, somatórios ou contagem total de linhas, utilize operações de agregação ou comandos SQL. Saiba mais em Agregação e Consulta SQL.
Se o objetivo for recuperar rapidamente todas as linhas correspondentes sem necessidade de ordenação, utilize o recurso de varredura paralela através das operações ParallelScan e ComputeSplits. Para mais detalhes, consulte Varredura paralela.