Use a consulta por termo para localizar linhas em que um campo específico corresponda exatamente a uma palavra-chave. A palavra-chave não é tokenizada. Para campos TEXT, o Tablestore tokeniza o valor do campo e compara a palavra-chave com cada token — a linha é retornada se qualquer token for uma correspondência exata.
Pré-requisitos
Uma instância OTSClient está inicializada. Para mais informações, consulte Initialize an OTSClient instance.
Uma tabela de dados está criada e contém dados gravados. Para mais informações, consulte Create data tables e Write data.
Um índice de pesquisa está criado para a tabela de dados. Para mais informações, consulte Create search indexes.
Parâmetros
|
Parâmetro |
Descrição |
|
FieldName |
Nome do campo a ser correspondido. |
|
Term |
Palavra-chave a ser comparada com os valores do campo. A palavra-chave não é tokenizada — ela é comparada tal como está com o valor completo do campo ou, no caso de campos TEXT, com cada token. Para campos TEXT, o Tablestore tokeniza o valor do campo e verifica se algum token corresponde exatamente à palavra-chave. Por exemplo, se um campo TEXT contém "tablestore is cool", o valor é tokenizado em "tablestore", "is" e "cool". Ao especificar qualquer um desses termos como palavra-chave, a linha correspondente é retornada. |
|
GetTotalCount |
Indica se o número total de linhas correspondentes deve ser retornado. O valor padrão é |
|
Query |
Tipo de consulta. Defina como |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
ColumnsToGet |
Colunas a retornar para as linhas correspondentes. Configure Por padrão,
Defina |
Exemplos
O exemplo a seguir consulta linhas em que o campo Keyword_type_col corresponde exatamente a SearchIndex.
/// <summary>
/// Query rows where Keyword_type_col exactly matches "SearchIndex".
/// </summary>
/// <param name="otsClient"></param>
public static void TermQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Return the total number of matching rows.
searchQuery.GetTotalCount = true;
// Match rows where Keyword_type_col equals "SearchIndex".
searchQuery.Query = new TermQuery("Keyword_type_col", new ColumnValue("SearchIndex"));
var request = new SearchRequest(TableName, IndexName, searchQuery);
// Return all columns from the search index.
// To return specific columns: Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// To return all columns from the data table: ReturnAll = true
request.ColumnsToGet = new ColumnsToGet()
{
ReturnAllFromIndex = true
};
var response = otsClient.Search(request);
// Check NextToken for paginated results.
}
FAQ
Referências
-
Ao usar um índice de pesquisa para consultar dados, você pode empregar os seguintes métodos 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 e exists query. Combine diferentes métodos para consultar dados em múltiplas dimensões, de acordo com as necessidades do seu negócio.
Ordene ou pagine as linhas que atendem às condições da consulta por meio dos recursos de ordenação e paginação. Para mais informações, consulte Sorting and paging.
Use o recurso de colapso (distinct) para agrupar o conjunto de resultados com base em uma coluna específica, de modo que dados do tipo especificado apareçam apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (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, é possível obter os valores mínimo e máximo, a soma e o número total de linhas. Para mais informações, consulte Aggregation e SQL query.
Para obter todas as linhas que atendem às condições da consulta sem necessidade de ordenação, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Parallel scan.