【问题标题】:Search API for ElasticSearch not returning all the logsElasticSearch 的搜索 API 未返回所有日志
【发布时间】:2021-05-18 21:09:11
【问题描述】:

我想从使用 NEST 的 asp.net 核心 web api 应用程序中获取来自 elasticsearch 的所有日志。我创建了一个名为ESController 的控制器来获取elasticsearch 中的日志。但是,当我这样做时,它只会显示第一个日志,而不是整个日志列表。我什至写信到控制台,看看我是否也可以在那里查看这些日志,但它没有显示。我没有日志的模型类。 我在 .net 应用程序中从 elasticsearch 检索/提取日志时做错了什么?

控制台显示:“从 POST 上成功的 (200) 低级别调用构建的有效 NEST 响应:/elastic-search-app-logs%2A/_search?typed_keys=true”

大摇大摆:

如果我错了,请纠正我,但在 ElasticSearch CLI 中运行以下命令将显示来自 elasticsearch 的日志:

GET elastic-search-app-logs*/_search
{
  "query": {
    "match_all": {}
  }
}

所以我要做的是使用 NEST 将此代码翻译成 .net。

我想从 elasticsearch 读取/提取到 .net 应用程序的日志

任何指针/建议将不胜感激!

【问题讨论】:

    标签: c# elasticsearch asp.net-web-api kibana nest


    【解决方案1】:

    _search API 将返回的结果数量受到限制,即使使用 match_all 过滤器也是如此。

    从 Elasticsearch 获取所有结果的传统方式是scroll search。最近推荐的方法是改用search_after(有关更多信息,请参阅滚动搜索链接)。

    NEST 客户端的文档涵盖 search_afterscrolling

    _search API 默认限制为 10,000 个结果。虽然不推荐,但您可以使用 index.max_result_window index setting 更改限制。

    [编辑:错字修正]

    【讨论】:

    • 谢谢,我会调查的!
    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多