Todos los productos
Search
Centro de documentos

Tablestore:Boolean query

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Python para combinar varias condiciones de consulta mediante la lógica AND, OR y NOT.

Requisitos previos

Instale Tablestore SDK for Python e inicialice un cliente.

Descripción

Una consulta booleana utiliza BoolQuery para combinar varias consultas secundarias en una condición compleja. Una consulta secundaria puede ser de cualquier tipo u otra BoolQuery. must_queries y filter_queries representan AND, should_queries representa OR, y must_not_queries representa NOT. filter_queries y must_not_queries no contribuyen a las puntuaciones de relevancia.

Si no se especifica minimum_should_match, should_queries es opcional cuando existen must_queries o filter_queries en el mismo nivel. En otros casos que contienen should_queries, como mínimo una consulta secundaria de should_queries debe coincidir de forma predeterminada.

BoolQuery(
    must_queries=None,
    must_not_queries=None,
    filter_queries=None,
    should_queries=None,
    minimum_should_match=None,
    weight=None,
)

El siguiente ejemplo consulta filas donde city es hangzhou y category es book.

query = BoolQuery(
    must_queries=[
        TermQuery("city", "hangzhou"),
        TermQuery("category", "book"),
    ]
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(query, limit=10, get_total_count=True),
    ColumnsToGet(return_type=ColumnReturnType.ALL),
)
print(response.rows)

Parámetros

Solicitud de búsqueda

El método search contiene los siguientes parámetros.

Nombre

Tipo

Descripción

table_name (obligatorio)

str

El nombre de la tabla de datos.

index_name (obligatorio)

str

El nombre del índice de búsqueda.

search_query (obligatorio)

SearchQuery

La condición de consulta y las configuraciones comunes de la consulta.

columns_to_get (opcional)

ColumnsToGet

La configuración de columnas a devolver. Si no se especifica este parámetro, solo se devuelven las columnas de clave principal.

routing_keys (opcional)

list

Los valores de clave principal de los campos de enrutamiento personalizados. Este parámetro no es necesario si no se ha configurado el enrutamiento personalizado.

timeout_s (opcional)

int

El tiempo de espera de la solicitud en segundos. Si no se especifica este parámetro, se utiliza el tiempo de espera a nivel de cliente.

Configuración de la consulta

search_query es de tipo SearchQuery y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

query (obligatorio)

Query

La condición de consulta. Establezca este parámetro en BoolQuery.

sort (opcional)

Sort

El orden de clasificación de los resultados. Para obtener más información, consulte Sort and paginate results.

get_total_count (opcional)

bool

Especifica si se debe devolver el número total de filas coincidentes. Valor predeterminado: False. Establecer este parámetro en True aumenta la sobrecarga de la consulta.

next_token (opcional)

bytes

El token de paginación. Pase next_token de la respuesta anterior para recuperar la página siguiente.

offset (opcional)

int

El desplazamiento desde el cual comienza la consulta. Utilice este parámetro para la paginación superficial.

limit (opcional)

int

El número máximo de filas a devolver. Si este parámetro se establece en 0, no se devuelve ninguna fila.

aggs (opcional)

list[Agg]

Las configuraciones de agregación de métricas. Para obtener más información, consulte Aggregation.

group_bys (opcional)

list[BaseGroupBy]

Las configuraciones de agrupamiento. Para obtener más información, consulte Aggregation.

collapse_field (opcional)

Collapse

La configuración de colapso de resultados. Para obtener más información, consulte Collapse query results.

highlight (opcional)

Highlight

La configuración de resumen y resaltado para campos Text. Para obtener más información, consulte Summary and highlighting.

Condición de consulta booleana

search_query.query es de tipo BoolQuery y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

must_queries (opcional)

list[Query]

Las consultas secundarias que deben coincidir en su totalidad. Las consultas secundarias coincidentes contribuyen a las puntuaciones de relevancia.

filter_queries (opcional)

list[Query]

Las consultas secundarias que deben coincidir en su totalidad, pero no contribuyen a las puntuaciones de relevancia.

should_queries (opcional)

list[Query]

Las consultas secundarias de las cuales debe coincidir un número mínimo especificado. Coincidir con más condiciones aumenta la puntuación de relevancia.

must_not_queries (opcional)

list[Query]

Las consultas secundarias que no deben coincidir. No contribuyen a las puntuaciones de relevancia.

minimum_should_match (opcional)

int

El número mínimo de consultas secundarias de should_queries que deben coincidir.

weight (opcional)

float

El peso de la consulta, que debe ser un número de punto flotante positivo. Valor predeterminado: 1.0. Este parámetro afecta las puntuaciones de relevancia, pero no la coincidencia.

Columnas de retorno

columns_to_get es de tipo ColumnsToGet y contiene los siguientes parámetros.

Nombre

Tipo

Descripción

column_names (opcional)

list[str]

Los nombres de las columnas de atributos a devolver. Especifique este parámetro solo cuando return_type sea SPECIFIED.

return_type (opcional)

ColumnReturnType

El modo de columnas de retorno. NONE (predeterminado) devuelve solo columnas de clave principal; SPECIFIED devuelve las columnas de atributos especificadas; ALL devuelve todas las columnas de atributos de la tabla; y ALL_FROM_INDEX devuelve todos los campos almacenados en el índice.

Respuesta

El método search devuelve SearchResponse. La siguiente tabla describe los campos principales.

Campo

Tipo

Descripción

rows

list[Row]

Las filas devueltas por la consulta. El número no excede limit.

next_token

bytes

El token para la página siguiente. Un valor vacío indica que no hay más datos disponibles.

total_count

int

El número de filas coincidentes. El valor depende de get_total_count.

is_all_succeed

bool

Indica si se consultaron todas las particiones del índice. Si el valor es False, se devuelven resultados parciales.

agg_results

list[AggResult]

Los resultados de la agregación de métricas. Este campo está vacío si no se configura aggs.

group_by_results

list[GroupByResult]

Los resultados del agrupamiento. Este campo está vacío si no se configura group_bys.

search_hits

list[SearchHit]

Los aciertos de búsqueda, que incluyen información extendida como filas, puntuaciones de relevancia y resaltados.

Respuesta compatible con tuplas

A partir de Tablestore SDK for Python 5.2.0, las API de búsqueda devuelven objetos de respuesta en lugar de tuplas. La versión 5.1.0 y anteriores devuelven tuplas directamente. En la versión 5.2.1 y posteriores, puede llamar a SearchResponse.v1_response() para obtener una tupla compatible con versiones anteriores. Para código nuevo, acceda directamente a los atributos de SearchResponse para evitar errores de desempaquetado si se extienden los campos de respuesta.

(
    rows,
    next_token,
    total_count,
    is_all_succeed,
    agg_results,
    group_by_results,
    search_hits,
) = response.v1_response()

Ejemplos

Combinar condiciones OR, NOT y de filtro

El siguiente ejemplo requiere que las filas pertenezcan a una categoría book-, coincidan con al menos una de las categorías Python o Java, y no tengan el estado deprecated.

query = BoolQuery(
    filter_queries=[PrefixQuery("category", "book-")],
    should_queries=[
        TermQuery("category", "book-python"),
        TermQuery("category", "book-java"),
    ],
    must_not_queries=[TermQuery("status", "deprecated")],
    minimum_should_match=1,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(query, limit=10),
)
print(response.rows)