java - Elasticsearch如何存储数据

我正在学习elasticsearch,并编写了一些简单的程序来插入,更新和删除数据。

我已经读过, Elasticsearch 总是以json格式存储数据。

我查看了我的elasticsearch安装中的“data”文件夹,即使我做了一些插入操作,也找不到任何json格式的文件。
我可以看到一些扩展名为.st的文件。

那么Elasticsearch实际将数据存储在json格式的什么地方呢?

最佳答案

Elastic在引擎盖下使用了lucene(https://lucene.apache.org/core/)。

Lucene是文本搜索引擎。它以针对检索目的而优化的自定义二进制格式存储文本。格式经过高度优化和复杂化。

Lucenes使用“包含文档的索引”的概念。内部每个索引都包含几个部分。段被保存在文件系统中的多个文件中。文档分为多个查找结构,位于文件中。

当您浏览elastic的数据文件夹时,您会看到此lucene索引和段结构。在文件系统级别上没有json格式的数据存储。相反,文件包含优化的二进制数据,您需要通过弹性API来获取文档的JSON表示形式。