Consulta de Elasticsearch para devolver todos los registros
Tengo una pequeña base de datos en Elasticsearch y, para realizar pruebas, me gustaría recuperar todos los registros. Estoy intentando utilizar una URL del formulario...
http://localhost:9200/foo/_search?pretty=true&q={'matchAll':{''}}
¿Alguien puede darme la URL que usaría para lograr esto, por favor?
Creo que la sintaxis de Lucene es compatible, por lo que:
http://localhost:9200/foo/_search?pretty=true&q=*:*
El tamaño predeterminado es 10, por lo que es posible que también necesites &size=BIGNUMBER
obtener más de 10 artículos. (donde BIGNUMBER equivale a un número que cree que es mayor que su conjunto de datos)
PERO, la documentación de elasticsearch sugiere que para conjuntos de resultados grandes se utilice el tipo de búsqueda de escaneo.
P.EJ:
curl -XGET 'localhost:9200/foo/_search?search_type=scan&scroll=10m&size=50' -d '
{
"query" : {
"match_all" : {}
}
}'
y luego siga solicitando según lo sugiere el enlace de documentación anterior.
EDITAR: scan
Obsoleto en 2.1.0.
scan
no proporciona ningún beneficio sobre una scroll
solicitud regular ordenada por _doc
. enlace a documentos elásticos (descubierto por @christophe-roussy)
http://127.0.0.1:9200/foo/_search/?size=1000&pretty=1
^
Tenga en cuenta el parámetro de tamaño , que aumenta los resultados mostrados del valor predeterminado (10) a 1000 por fragmento.
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-from-size.html
elasticsearch(ES) admite solicitudes GET o POST para obtener los datos del índice del clúster ES.
Cuando hacemos un GET:
http://localhost:9200/[your index name]/_search?size=[no of records you want]&q=*:*
Cuando hacemos un POST:
http://localhost:9200/[your_index_name]/_search
{
"size": [your value] //default 10
"from": [your start index] //default 0
"query":
{
"match_all": {}
}
}
Sugeriría utilizar un complemento de interfaz de usuario con elasticsearch http://mobz.github.io/elasticsearch-head/ . Esto le ayudará a tener una mejor idea de los índices que crea y también a probarlos.
Nota: La respuesta se relaciona con una versión anterior de Elasticsearch
0.90
. Las versiones publicadas desde entonces tienen una sintaxis actualizada. Consulte otras respuestas que puedan proporcionar una respuesta más precisa a la última respuesta que está buscando.
La siguiente consulta devolverá el NO_OF_RESULTS que le gustaría que le devolvieran.
curl -XGET 'localhost:9200/foo/_search?size=NO_OF_RESULTS' -d '
{
"query" : {
"match_all" : {}
}
}'
Ahora, la pregunta aquí es si desea que se devuelvan todos los registros. Naturalmente, antes de escribir una consulta, no sabrá el valor de NO_OF_RESULTS .
¿Cómo sabemos cuántos registros existen en su documento? Simplemente escriba la consulta a continuación
curl -XGET 'localhost:9200/foo/_search' -d '
Esto le daría un resultado similar al siguiente.
{
hits" : {
"total" : 2357,
"hits" : [
{
..................
El resultado total le indica cuántos registros hay disponibles en su documento. Entonces, esa es una buena manera de conocer el valor de NO_OF RESULTS .
curl -XGET 'localhost:9200/_search' -d '
Buscar todos los tipos en todos los índices
curl -XGET 'localhost:9200/foo/_search' -d '
Buscar todos los tipos en el índice foo
curl -XGET 'localhost:9200/foo1,foo2/_search' -d '
Busque todos los tipos en los índices foo1 y foo2
curl -XGET 'localhost:9200/f*/_search
Busque todos los tipos en cualquier índice que comience con f
curl -XGET 'localhost:9200/_all/type1,type2/_search' -d '
Tipos de búsqueda usuario y tweet en todos los índices