Utilice el Tablestore SDK for Go para filtrar resultados después del procesamiento de consultas y agregaciones.
Requisitos previos
Instale Tablestore Go SDK e inicialice un cliente.
Descripción
Un filtro posterior a la consulta usa SearchFilter para filtrar los resultados de una búsqueda. Este filtro se aplica después del procesamiento de la consulta y la agregación; por lo tanto, no modifica los resultados de la agregación y solo afecta las filas devueltas y el recuento de filas coincidentes. Esta función permite controlar cuándo se evalúa una condición de consulta. Un uso adecuado mejora el rendimiento de las consultas.
La consulta principal admite todos los tipos de consulta compatibles con Search, pero no se recomienda usar MatchAllQuery. El filtro solo admite valores de TermQuery, TermsQuery, RangeQuery, ExistsQuery y BoolQuery compuestos por estos tipos de consulta. BoolQuery es compatible con MustQueries, MustNotQueries y ShouldQueries, pero no con FilterQueries. Solo se pueden filtrar campos de tipo Keyword, Long y Double, y el campo debe tener habilitados el ordenamiento y la agregación. Las condiciones de filtro no admiten Weight.
filter := (&search.SearchFilter{}).SetQuery(
&search.TermQuery{FieldName: "status", Term: "active"},
)
searchQuery := search.NewSearchQuery().
SetQuery(&search.TermQuery{FieldName: "category", Term: "books"}).
SetSearchFilter(filter).
SetGetTotalCount(true)
response, err := client.Search(&tablestore.SearchRequest{
TableName: "example_table",
IndexName: "example_index",
SearchQuery: searchQuery,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(response.TotalCount)
fmt.Println(response.Rows)
Parámetros
|
Nombre |
Tipo |
Descripción |
|
Query (obligatorio) |
search.Query |
La condición de filtro. Se admiten combinaciones de TermQuery, TermsQuery, RangeQuery, ExistsQuery y BoolQuery. |
Respuesta
|
Nombre |
Tipo |
Descripción |
|
TotalCount |
int64 |
Número total de filas coincidentes. El valor depende de SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
Filas devueltas por la consulta actual. La cantidad no supera el valor especificado en SetLimit. |
|
SearchHits |
[]*tablestore.SearchHit |
Resultados de la búsqueda. Lea este campo cuando use resaltado, coincidencias internas anidadas o puntuaciones de relevancia. |
|
NextToken |
[]byte |
Token para la siguiente página. Si el valor no está vacío, páselo a la siguiente consulta. |
|
IsAllSuccess |
bool |
Indica si se consultaron todas las particiones del índice. Si el valor es false, se devuelven resultados parciales y TotalCount podría ser menor que el número real de filas coincidentes. |
|
AggregationResults |
search.AggregationResults |
Resultados de la agregación. |
|
GroupByResults |
search.GroupByResults |
Resultados de la agrupación. |