我在Elasticsearch中有一个小数据库,出于测试目的,我想把所有记录拉回来。我正在尝试使用表单的URL…

http://localhost:9200/foo/_search?pretty=true&q={'matchAll':{''}}

有人能给我你要用来完成这个的URL吗?


当前回答

通过提供大小,elasticSearch将返回的最大结果是10000

curl -XGET 'localhost:9200/index/type/_search?scroll=1m' -d '
{
   "size":10000,
   "query" : {
   "match_all" : {}
    }
}'

在此之后,您必须使用Scroll API来获取结果并获得_scroll_id值,并将此值放入scroll_id中

curl -XGET  'localhost:9200/_search/scroll'  -d'
{
   "scroll" : "1m", 
   "scroll_id" : "" 
}'

其他回答

使用kibana控制台和my_index作为搜索索引,可以提供以下内容。要求索引只返回索引的4个字段,您还可以添加大小来指示您希望由索引返回多少文档。从ES 7.6开始,你应该使用_source而不是filter,它会响应更快。

GET /address/_search
 {
   "_source": ["streetaddress","city","state","postcode"],
   "size": 100,
   "query":{
   "match_all":{ }
    }   
 }

您可以使用size=0,这将返回您所有的文档 例子

curl -XGET 'localhost:9200/index/type/_search' -d '
{
   size:0,
   "query" : {
   "match_all" : {}
    }
}'

使用Elasticsearch 7.5.1

http://${HOST}:9200/${INDEX}/_search?pretty=true&q=*:*&scroll=10m&size=5000

如果你也可以用&size=${number}来指定数组的大小

以防你不知道你的索引

http://${HOST}:9200/_cat/indices?v

Elasticsearch 6.x

请求:GET /foo/_search?漂亮= true

Response:在Hits-> total中,给出文档的计数

    {
      "took": 1,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 1001,
        "max_score": 1,
        "hits": [
          {
http://127.0.0.1:9200/foo/_search/?size=1000&pretty=1
                                   ^

请注意size参数,它将每个分片显示的命中数从默认值(10)增加到1000。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-from-size.html