Uma consulta de frase correspondente retorna linhas apenas quando os tokens de uma coluna correspondem à palavra-chave tanto na ordem quanto na posição. Diferentemente da consulta de correspondência, as posições dos tokens são relevantes. Se a coluna de destino usar tokenização difusa, a consulta de frase correspondente apresenta latência menor que a consulta com 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 pesquisa criado para a tabela de dados. Para mais informações, consulte Criar índices de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
FieldName |
Nome da coluna a consultar. A coluna pode ser do tipo TEXT. |
|
Text |
Palavra-chave para corresponder aos valores da coluna. Em colunas TEXT, a palavra-chave é tokenizada conforme o tipo de analisador especificado durante a criação do índice de pesquisa. Caso nenhum tipo seja definido, a tokenização de palavra única é usada por padrão. Por exemplo, ao consultar com a frase "this is", o sistema retorna linhas como "..., this is tablestore" e "this is a table", mas não "this table is ..." ou "is this a table". |
|
Query |
Tipo de consulta. Defina como MatchPhraseQuery. |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
GetTotalCount |
Indica se o número total de linhas correspondentes deve ser retornado. Valor padrão: false. Definir este parâmetro como true reduz o desempenho da consulta. |
|
ColumnsToGet |
Colunas a retornar das linhas correspondentes. Configure usando ReturnAll, Columns ou ReturnAllFromIndex. Por padrão,
Defina |
Exemplo
O exemplo abaixo consulta linhas em que a coluna Text_type_col corresponde à frase "Tablestore SearchIndex".
/// <summary>
/// Query rows where Text_type_col matches "Tablestore SearchIndex" and return the total match count.
/// </summary>
/// <param name="otsClient"></param>
public static void MatchPhraseQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Set the query type to MatchPhraseQuery.
searchQuery.Query = new MatchPhraseQuery("Text_type_col", "Tablestore SearchIndex");
// Return the total number of matching rows.
searchQuery.GetTotalCount = true;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// Specify the columns to return. If not set, only primary key columns are returned.
request.ColumnsToGet = new ColumnsToGet()
{
// Return all columns in the search index.
ReturnAllFromIndex = true
// Return specific columns.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Return all columns in the matching rows.
//ReturnAll = true
};
var response = otsClient.Search(request);
// TotalCount is the number of matching rows, not the number of returned rows.
Console.WriteLine("Total Count:" + response.TotalCount);
}
Perguntas frequentes
Referências
-
Ao usar um índice de pesquisa para consultar dados, utilize os seguintes métodos: consulta de termo, consulta de termos, consulta match all, consulta de correspondência, consulta de frase correspondente, consulta de prefixo, consulta de intervalo, consulta com curinga, consulta booleana, consulta geográfica, consulta aninhada e consulta exists. Combine diferentes métodos para consultar dados em múltiplas dimensões conforme suas necessidades de negócio.
Ordene ou pagine as linhas que atendem às condições da consulta usando os recursos de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Use o recurso de colapso (distinct) para agrupar o conjunto de resultados com base em uma coluna específica. Assim, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Colapso (distinct).
Para analisar dados em uma tabela de dados, use o recurso de agregação da operação Search ou execute instruções SQL. Por exemplo, obtenha valores mínimos e máximos, somas e o número total de linhas. Para mais informações, consulte Agregação e Consulta SQL.
Caso precise obter todas as linhas que atendem às condições de consulta sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de verificação paralela. Para mais informações, consulte Verificação paralela.