Estoy tratando de enumerar todos los cubos en una agregación, pero parece que solo se muestran los primeros 10.
Mi busqueda:
curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d'
{
"size": 0,
"aggregations": {
"bairro_count": {
"terms": {
"field": "bairro.raw"
}
}
}
}'
Devoluciones:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 16920,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"bairro_count" : {
"buckets" : [ {
"key" : "Barra da Tijuca",
"doc_count" : 5812
}, {
"key" : "Centro",
"doc_count" : 1757
}, {
"key" : "Recreio dos Bandeirantes",
"doc_count" : 1027
}, {
"key" : "Ipanema",
"doc_count" : 927
}, {
"key" : "Copacabana",
"doc_count" : 842
}, {
"key" : "Leblon",
"doc_count" : 833
}, {
"key" : "Botafogo",
"doc_count" : 594
}, {
"key" : "Campo Grande",
"doc_count" : 456
}, {
"key" : "Tijuca",
"doc_count" : 361
}, {
"key" : "Flamengo",
"doc_count" : 328
} ]
}
}
}
Tengo mucho más de 10 claves para esta agregación. En este ejemplo, tendría 145 claves y quiero el recuento de cada una de ellas. ¿Hay alguna paginación en los cubos? ¿Puedo obtenerlos todos?
Estoy usando Elasticsearch 1.1.0
fuente
size:0
. Puede leer más sobre esto en este número deNota
"size":10000
Obtenga como máximo 10000 cubos. El valor predeterminado es 10."size":0
En resultado,"hits"
contiene 10 documentos por defecto. No los necesitamosPor defecto, los cubos se ordenan por
doc_count
orden decreciente.Porque fielddata está deshabilitado en los campos de texto de forma predeterminada . Si no ha elegido explícitamente una asignación de tipo de campo, tiene las asignaciones dinámicas predeterminadas para los campos de cadena .
Entonces, en lugar de escribir,
"field": "your_field"
debes tener"field": "your_field.keyword"
.fuente
Aumente el tamaño (segundo tamaño) a 10000 en sus agregaciones de términos y obtendrá el depósito del tamaño 10000. De forma predeterminada, se establece en 10. Además, si desea ver los resultados de búsqueda, simplemente haga el primer tamaño en 1, puede ver 1 documento, ya que ES admite tanto la búsqueda como la agregación.
fuente
Si desea obtener todos los valores únicos sin establecer un número mágico (
size: 10000
), use AGREGACIÓN COMPUESTA (ES 6.5+) .De la documentación oficial :
"Si desea recuperar todos los términos o todas las combinaciones de términos en una agregación de términos anidados , debe usar la AGREGACIÓN COMPUESTA que permite paginar sobre todos los términos posibles en lugar de establecer un tamaño mayor que la cardinalidad del campo en la agregación de términos. la agregación de términos debe devolver los términos principales y no permite la paginación ".
Ejemplo de implementación en JavaScript:
fuente