Todos los productos
Search
Centro de documentos

Tablestore:Ejecutar una consulta booleana

Última actualización: Sep 22, 2026

Una consulta booleana se compone de una o más subconsultas. Tablestore devuelve las filas que cumplen con las condiciones de subconsulta especificadas. Una subconsulta puede ser de cualquier tipo, incluida la consulta booleana.

Requisitos previos

Parámetros

Parámetro

Descripción

MustQueries

Lista de condiciones de subconsulta. Solo se devuelven las filas que cumplen con todas las condiciones de subconsulta. Este parámetro equivale al operador AND.

MustNotQueries

Lista de condiciones de subconsulta. Solo se devuelven las filas que no cumplen con ninguna condición de subconsulta. Este parámetro equivale al operador NOT.

FilterQueries

Lista de condiciones de subconsulta. Solo se devuelven las filas que cumplen con todos los subfiltros. Un filtro es similar a una consulta, pero no calcula una puntuación de relevancia según la cantidad de subfiltros que cumple una fila.

ShouldQueries

Lista de condiciones de subconsulta. No es necesario cumplir con todas las condiciones para que se devuelvan los resultados de la consulta. Este parámetro equivale al operador OR.

Solo se devuelven las filas que cumplen con el número mínimo de condiciones de subconsulta especificado por el parámetro ShouldQueries.

Una puntuación de relevancia general más alta indica que se cumplen más condiciones de subconsulta especificadas por el parámetro ShouldQueries.

MinimumShouldMatch

Número mínimo de condiciones de subconsulta especificadas por el parámetro ShouldQueries que deben cumplir las filas devueltas. Si solo se especifican las condiciones del parámetro ShouldQueries, el valor predeterminado de MinimumShouldMatch es 1. Si se especifican otras condiciones, como las de MustQueries, MustNotQueries o FilterQueries, el valor predeterminado de MinimumShouldMatch es 0.

TableName

Nombre de la tabla de datos.

IndexName

Nombre del índice de búsqueda.

ColumnsToGet

Indica si se devuelven todas las columnas de las filas que cumplen con 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 van a 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 ejemplo de código para ejecutar una consulta booleana compuesta por subconsultas booleanas. En este caso, se consultan las filas donde el valor de la columna Keyword_type_col es "SearchIndex" o "TableStore". Se devuelven todas las columnas del índice de búsqueda.

/// <summary>
/// A Boolean query contains one or more subqueries. Each subquery has its own type. 
/// MustQueries: The rows must meet all subquery conditions. 
/// ShouldQueries: More than one condition is specified by the ShouldQueries parameter. If a row meets at least one condition, the row meets the query conditions. 
/// MustNotQueries: The rows must not meet the conditions. 
/// MinimumShouldMatch: The rows must meet the minimum number of conditions. 
/// </summary>
/// <param name="otsClient"></param>
public static void BoolQuery(OTSClient otsClient)
{
    Console.WriteLine("\n Start bool query...");

    var searchQuery = new SearchQuery();
    // Return the total number of rows that meet the query conditions. 
    searchQuery.GetTotalCount = true;
    var boolQuery = new BoolQuery();
    var shouldQuerys = new List<IQuery>();
    shouldQuerys.Add(new TermQuery(Keyword_type_col, new ColumnValue("SearchIndex")));
    shouldQuerys.Add(new TermQuery(Keyword_type_col, new ColumnValue("TableStore")));
    boolQuery.ShouldQueries = shouldQuerys;
    boolQuery.MinimumShouldMatch = 1;

    searchQuery.Query = boolQuery;

    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. 
    foreach (var row in response.Rows)
    {
        PrintRow(row);
    }
}

Preguntas frecuentes

Referencias

  • Cuando utiliza un índice de búsqueda para consultar datos, puede usar 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. Según sus necesidades de negocio, combine distintos métodos para consultar datos desde múltiples dimensiones.

    Las funciones de ordenamiento y paginación permiten organizar las filas que cumplen con las condiciones de la consulta. Para obtener más información, consulte Sorting and paging.

    La función collapse (distinct) reduce el conjunto de resultados con base en una columna específica. De esta manera, los datos del tipo indicado aparecen una sola 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 cumplen con las condiciones de la consulta sin necesidad de ordenarlas, llame a las operaciones ParallelScan y ComputeSplits mediante la función de escaneo paralelo. Para obtener más información, consulte Parallel scan.