【问题标题】:How to increase search size > 10,000 in elasticsearch in R?如何在 R 中的 elasticsearch 中增加搜索大小 > 10,000?
【发布时间】:2018-05-14 01:42:42
【问题描述】:

我一直在尝试使用 elastic 包从 R 中查询 elasticsearch。

我能够查询和获取数据

`Search(index = "tmp_test_data", 
           q = "_type: random AND log.type: regular", size = 10000)`

但是,当我尝试通过添加正文来增加size

`body1 <- '{"settings" : {"index" : {"max_result_window" : "170000"}}}'`

到搜索查询

`Search(index = "tmp_test_data", 
           q = "_type: random AND log.type: regular", body = body1)`

它返回,Error: 400 - Unknown key for a START_OBJECT in [settings].

编辑:
我尝试在 search 函数中使用 from 参数循环,每次搜索 size = 1000 返回多达 10,000 条记录,然后抛出 Error: 500 - all shards failed

按照 R 文档/帮助中给出的一些示例,我还尝试在 search 函数中使用 elastic::scrolltm_scroll = "5m",但它返回相同的错误 Error: 500 - all shards failed

在 R elasticsearch 中增加查询大小的适当方法是什么?

【问题讨论】:

  • Elasticsearch 的默认最大值为 10K。如下所述,您可以在设置中更改它。当您想要大量数据使用滚动功能时,通常推荐使用,请参阅elastic::scroll
  • 嘿,感谢您调查我的问题。我已经通过更多试验编辑了我的问题。我得到的结果不超过 10K。
  • 您无法更改查询中的 10K 默认限制,您必须在 Elasticsearch 安装的设置中进行更改。我自己实际上并没有做过,但文档应该会有所帮助。请通过 connect(errors = "complete") 查看来自 Elasticsearch 的详细堆栈跟踪 - 这应该可以深入了解发生了什么问题

标签: r elasticsearch


【解决方案1】:

您正在尝试更新dynamic index setting。您不能将其作为搜索的一部分。

要更新它,您需要使用Update Settings API 更新它。我不知道如何用 R 来做,但这里有一个 http 请求示例。

PUT http://myserver:9200/tmp_test_data/_settings

{  
    "index" : {
        "max_result_window": 170000
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多