Todos os produtos
Search
Central de documentação

Tablestore:Executar uma consulta aninhada

Última atualização: Sep 22, 2026

Este tópico descreve como executar consultas aninhadas para consultar dados nas linhas filhas de colunas aninhadas. Use a operação NestedQuery para encapsular uma coluna aninhada antes de consultá-la. Ao chamar a operação NestedQuery, especifique uma subconsulta de qualquer tipo e o caminho da coluna aninhada.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

Path

O caminho da coluna aninhada, semelhante a uma estrutura de árvore. Por exemplo, news.title indica a subcoluna title na coluna news do tipo aninhado.

Query

A consulta na subcoluna da coluna aninhada. Pode ser de qualquer tipo de consulta.

ScoreMode

Especifica o valor usado para calcular a pontuação quando a coluna contém múltiplos valores.

TableName

O nome da tabela de dados.

IndexName

O nome do índice de pesquisa.

ColumnsToGet

Define se todas as colunas das linhas que atendem às condições da consulta serão retornadas. Especifique os parâmetros ReturnAll, Columns e ReturnAllFromIndex.

Por padrão, ReturnAll é false, retornando apenas as colunas de chave primária. Para incluir colunas adicionais, use uma das seguintes opções:

  • Defina Columns para especificar as colunas a serem retornadas.

  • Defina ReturnAllFromIndex como true para retornar todas as colunas do índice de pesquisa.

Defina ReturnAll como true para retornar todas as colunas da tabela de dados.

Exemplo

O código de exemplo a seguir mostra como consultar as linhas em que o valor da subcoluna nested_1 na coluna col_nested é "tablestore". Todas as colunas do índice de pesquisa são retornadas.

/// <summary>
/// Query the rows in which the value of the col1_nested.nested_1 column is "tablestore". In this example, the col1_nested column is a nested column and contains the nested_1 and nested_2 subcolumns. 
/// </summary>
/// <param name="otsClient"></param>
public static void NestedQuery(OTSClient otsClient)
{
    var searchQuery = new SearchQuery();
    // Return the total number of rows that meet the query conditions. 
    searchQuery.GetTotalCount = true;
    var nestedQuery = new NestedQuery();
    nestedQuery.Path = "col1_nested"; // Specify the path of the nested column. 
    TermQuery termQuery = new TermQuery("col1_nested.nested_1",new ColumnValue("tablestore"));// Construct a subquery of for the nested query. 
    nestedQuery.Query = termQuery;
    nestedQuery.ScoreMode = ScoreMode.None;

    var request = new SearchRequest(TableName, IndexName, searchQuery);
    // You can specify the ColumnsToGet parameter to return the columns that you specify, all columns in the rows that meet the query conditions, or all columns in the search index. If you do not specify this parameter, only the primary key columns are returned. 
    request.ColumnsToGet = new ColumnsToGet()
    {
        // Return all columns in the search index. 
        ReturnAllFromIndex = true
        // Return the columns that you specify. 
        //Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
        // Return all columns in the rows that meet the query conditions. 
        //ReturnAll = true
    };

    var response = otsClient.Search(request);

    Console.WriteLine("Total Count:" + response.TotalCount); // Display the total number of rows that meet the query conditions instead of the number of returned rows. 
}

FAQ

Referências

  • Ao usar um índice de pesquisa para consultar dados, utilize 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. Use diferentes métodos de consulta para buscar dados em várias dimensões de acordo com os requisitos do seu 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 Sorting and paging.

    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 saber mais, 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, obtenha os valores mínimo e máximo, a soma e o total de linhas. Para obter mais detalhes, consulte Aggregation e SQL query.

  • Para obter todas as linhas que atendem às condições da consulta sem precisar ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para obter mais informações, consulte Parallel scan.