首页 > 解决方案 > 什么是弹性搜索商店,以及如何?

问题描述

根据维基百科,弹性搜索是一个搜索引擎。这意味着它不是数据库,并且不存储它正在索引的数据(但可能确实存储了它的索引)

大概有两种方法可以将数据输入 Es。日志传送或直接通过 api。

假设我的应用程序想要编写一个老式的日志文件条目:

Logger.error(now() + “模块发生了不好的事情” + 模块 + “;” + 消息”</p>

这可以写入文件或使用 rest api 将数据直接放入 es 中。

如果是通过rest api完成的,es是否存储了整个日志消息,在这种情况下,您不需要浪费磁盘将日志写入文件以实现合规性等。或者它只索引数据,因此您需要保留一个单独的副本? 如果删除或移动了原来的日志文件,es怎么知道,deos存储的东西还有用吗?

如果您写入日志文件,则使用 log stash 或类似“将日志数据放入 es” es 是否存储整个日志文件以及任何索引?

es如何解析或索引任意日志文件?它将日志行视为单个字符串,还是要求日志具有特定格式,例如 cvs 或 Jason?

有谁知道这个关键信息的资源?

标签: elasticsearch

解决方案


Elasticsearch 确实存储了您要编制索引的数据。

当您将数据摄取到 elasticsearch 中时,这些数据会存储在一个或多个索引中,然后可以对其进行搜索。为了能够使用弹性搜索搜索某些内容,您需要将数据存储在弹性搜索中,例如,它不能搜索外部文件。

在您的示例中,如果您有一个发送日志的应用程序执行弹性搜索,它将存储您发送的整个消息,并且在弹性搜索中之后您不再需要原始日志。

如果您需要解析不同字段中的文档,您可以在将日志作为 json 文档发送到 elasticsearch 之前执行此操作,使用 logstash 来执行此操作或在 elasticsearch 中使用摄取管道。

了解更多关于它是如何工作的一个很好的起点是官方文档


推荐阅读