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

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

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


当前回答

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": [
          {

其他回答

Size参数将显示的命中数从默认值(10)增加到500。

http://localhost:9200/[indexName]/_search?pretty=true&size=500&q=*:*

将from逐步更改为获取所有数据。

http://localhost:9200/[indexName]/_search?size=500&from=0

我认为lucene语法是受支持的,所以:

http://localhost: 9200 / foo / _search ?漂亮=真的,q = *: *

size默认为10,因此您可能还需要&size=BIGNUMBER来获取超过10个项目。(其中BIGNUMBER等于一个你认为比你的数据集大的数字)

但是,elasticsearch文档建议对于较大的结果集,使用扫描搜索类型。

EG:

curl -XGET 'localhost:9200/foo/_search?search_type=scan&scroll=10m&size=50' -d '
{
    "query" : {
        "match_all" : {}
    }
}'

然后按照上面建议的文档链接继续请求。

EDIT: scan 2.1.0中已弃用。

与按_doc排序的常规滚动请求相比,Scan并没有提供任何好处。弹性文档链接(由@christophe-roussy提供)

默认情况下Elasticsearch返回10条记录,因此应该显式提供大小。

添加大小与请求,以获得所需的记录数量。

http://{host}:9200/{index_name}/_search?pretty=true&size=(number的记录)

注意: 最大页面大小不能超过索引。Max_result_window索引设置,默认值为10,000。

来自Kibana DevTools的:

GET my_index_name/_search
{
  "query": {
    "match_all": {}
  }
}

你可以使用_count API来获取size参数的值:

http://localhost:9200/foo/_count?q=<your query>

返回{count:X,…}。提取值'X',然后执行实际查询:

http://localhost:9200/foo/_search?q=<your query>&size=X