【问题标题】:Elastic search document storing弹性搜索文件存储
【发布时间】:2023-03-19 03:23:01
【问题描述】:

我们试图解决的基本用例是让用户能够从日志文件的内容中进行搜索。

让我们说一个简单的情况,用户搜索一个关键字,它存在于一个日志文件中,我想将它呈现给用户。

我们计划使用 ElasticSearch 来处理这个问题。我想到的想法是使用弹性搜索作为存储索引日志文件的机制。

考虑到这个概念,我浏览了https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

我有几个问题, 1) 我了解提供给弹性搜索的输入是 JSON 文档。它将扫描这个提供的 JSON 并创建/更新索引。所以我需要一种机制来将我的输入日志文件转换为 JSON?

2) 弹性搜索会扫描这个输入文档并创建/更新倒排索引。这些倒排索引实际上指向确切的文档。那么这是否意味着,ES 会将这些文档存储在某个地方?它会将它们存储为 JSON 文档吗?它是纯粹在内存中还是在文件系统/数据库中?

3) 不,当用户搜索关键字时,ES 返回包含搜索关键字的文档。现在我是否需要能够将此 JSON 文档转换回用户期望的原始日志文档??

显然我错过了一些东西。很抱歉提出这么愚蠢的问题,但我正在努力提高我的技能和它的 WIP。

另外,我知道那里有 ELK 堆栈。由于某些原因,我们只想使用 ES 而不是堆栈中的 LogStash 和 Kibana 部分..

谢谢

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:
    1. 需要先将日志解析为 JSON,然后才能插入 Elasticsearch
    2. 所有文档都存储在文件系统中,一些数据保存在内存中,但所有数据都是持久的。
    3. 当您搜索 Elasticsearch 时,您会得到匹配的 JSON 文档。如果要显示原始错误消息,可以将原始消息存储在 JSON 字段之一中并仅显示该消息。

    因此,如果您只想存储日志消息而不是将它们分解为字段或任何内容,您可以简单地将每一行发送到 Elasticsearch,如下所示:

    { "message": "This is my log message" }
    

    要解析日志,将它们分解为字段并添加一些逻辑,您将需要使用某种应用程序,例如 Logstash。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多