Todos os produtos
Search
Central de documentação

Tablestore:Executar uma consulta booleana

Última atualização: Jun 30, 2026

Uma consulta booleana consiste em uma ou mais subconsultas. O Tablestore retorna as linhas que atendem às condições especificadas. A subconsulta pode ser de qualquer tipo, inclusive booleana.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

MustQueries

Lista de condições de subconsulta. Retorna apenas as linhas que atendem a todas as condições. Equivale ao operador AND.

MustNotQueries

Lista de condições de subconsulta. Retorna apenas as linhas que não atendem a nenhuma das condições. Equivale ao operador NOT.

FilterQueries

Lista de condições de subconsulta. Retorna apenas as linhas que atendem a todos os subfiltros. O filtro funciona como uma consulta, mas não calcula pontuação de relevância com base na quantidade de subfiltros correspondentes.

ShouldQueries

Lista de condições de subconsulta. Não exige o atendimento de todas as condições para retornar resultados. Equivale ao operador OR.

Retorna apenas as linhas que atendem ao número mínimo de condições especificado neste parâmetro.

Uma pontuação geral de relevância maior indica que a linha atende a mais condições definidas em ShouldQueries.

MinimumShouldMatch

Número mínimo de condições de ShouldQueries que as linhas retornadas devem atender. Se houver apenas condições em ShouldQueries, o valor padrão é 1. Se existirem outras condições (como MustQueries, MustNotQueries ou FilterQueries), o valor padrão é 0.

TableName

Nome da tabela de dados.

IndexName

Nome do índice de pesquisa.

ColumnsToGet

Define se o sistema deve retornar todas as colunas das linhas correspondentes. Configure os parâmetros ReturnAll, Columns e ReturnAllFromIndex conforme necessário.

Por padrão, ReturnAll é false, então o sistema retorna apenas as colunas de chave primária. Para retornar colunas adicionais, use uma das opções a seguir:

  • Defina Columns para especificar quais colunas retornar.

  • 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 a seguir executa uma consulta booleana composta por subconsultas booleanas. O exemplo busca linhas em que a coluna Keyword_type_col tenha o valor "SearchIndex" ou "TableStore" e retorna todas as colunas do índice de pesquisa.

/// <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);
    }
}

Perguntas frequentes

Referências