【问题标题】:query ElasticSearch wtih Httpoison使用 Httpoison 查询 ElasticSearch
【发布时间】:2021-05-24 13:14:48
【问题描述】:

当我在 ElasticSearch 中使用 DevTools 来获取 POD 的信息时:

它给了我大约 310 行:

但是当我在我的 elixir 应用程序中这样做时:

logs = HTTPoison.get("https://x.x.x.x:9200/lo*/_search?q=kubernetes.pod_name:logs-dep-test-7469c67667-fcrzh", hackney: [:insecure, basic_auth: {"xxxx", "xxxxx"}])

它给了我不完整的响应(可能只有 150 行) 谁能给我一些想法!

【问题讨论】:

  • 你是从iex 内部运行这个吗?您确定这是不完整的响应,还是您的响应被默认显示设置截断?检查通常会限制他们返回的数据的大小。请参阅hexdocs.pm/elixir/1.12/Inspect.Opts.html,例如IEx.configure(inspect: [limit: :infinity])
  • 是的,我使用了检查功能,我认为这就是我没有得到完整响应的原因。我会试试的,非常非常感谢
  • 我会将其添加为答案,以便您接受。

标签: elasticsearch elixir phoenix httpoison


【解决方案1】:

听起来您的回复被默认显示设置剪裁了,例如里面iex。默认情况下,检查将限制返回数据的大小。参见Inspect.Opts 例如

您可以为您的iex 会话配置它,或者将相关选项传递给IO.inspect 的调用:

IEx.configure(inspect: [limit: :infinity])
IEx.configure(inspect: [limit: :infinity, printable_limit: :infinity])

【讨论】:

  • 通过您的回答,您给了我一个很大的提示,让我知道真正的问题不在于检查功能,而是来自 HTTPoison 的响应正文不完整。所以我需要用一种叫做“异步请求”的方法来处理大响应,这是任何有同样问题的人的参考:medium.com/@alvisesus/…
猜你喜欢
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2017-10-06
  • 2020-08-05
  • 1970-01-01
  • 2017-10-18
  • 2015-05-13
相关资源
最近更新 更多