Todos los productos
Search
Centro de documentos

Tablestore:Ejecutar una consulta anidada

Última actualización: Sep 22, 2026

Este tema describe cómo ejecutar consultas anidadas para consultar los datos en las filas secundarias de columnas anidadas. Debe usar la operación NestedQuery para envolver una columna anidada antes de consultarla. Cuando llame a la operación NestedQuery, especifique una subconsulta de cualquier tipo y la ruta de la columna anidada.

Requisitos previos

Parámetros

Parámetro

Descripción

Path

La ruta de la columna anidada. Esta ruta es similar a una estructura de árbol. Por ejemplo, news.title indica la subcolumna title dentro de la columna news de tipo anidado.

Query

La consulta sobre la subcolumna dentro de la columna anidada. Puede ser de cualquier tipo de consulta.

ScoreMode

Define qué valor se utiliza para calcular la puntuación cuando la columna contiene varios valores.

TableName

El nombre de la tabla de datos.

IndexName

El nombre del índice de búsqueda.

ColumnsToGet

Indica si se devuelven todas las columnas de las filas que cumplen las condiciones de la consulta. Puede especificar los parámetros ReturnAll, Columns y ReturnAllFromIndex.

De forma predeterminada, ReturnAll es false, lo que significa que solo se devuelven las columnas de clave primaria. Para devolver columnas adicionales, utilice una de las siguientes opciones:

  • Establezca Columns para indicar qué columnas se deben devolver.

  • Establezca ReturnAllFromIndex en true para devolver todas las columnas del índice de búsqueda.

Establezca ReturnAll en true para devolver todas las columnas de la tabla de datos.

Ejemplo

A continuación se muestra un código de ejemplo que consulta las filas donde el valor de la subcolumna nested_1, dentro de la columna col_nested, es "tablestore". Se devuelven todas las columnas del índice de búsqueda.

/// <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. 
}

Preguntas frecuentes

Referencias

  • Cuando use un índice de búsqueda para consultar datos, puede utilizar los siguientes 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 y exists query. Estos métodos le permiten consultar datos desde múltiples dimensiones según sus necesidades de negocio.

    Mediante las funciones de ordenamiento y paginación, puede ordenar o paginar las filas que cumplan las condiciones de la consulta. Para obtener más información, consulte Sorting and paging.

    La función collapse (distinct) permite agrupar el conjunto de resultados con base en una columna específica. De esta manera, los datos del tipo indicado aparecen solo una vez en los resultados de la consulta. Para obtener más información, consulte Collapse (distinct).

  • Si necesita analizar los datos de una tabla, utilice la función de agregación de la operación Search o ejecute instrucciones SQL. Por ejemplo, puede obtener los valores mínimo y máximo, la suma y el número total de filas. Para obtener más información, consulte Aggregation y SQL query.

  • Para obtener todas las filas que cumplan las condiciones de la consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits para usar la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.