数据如何物理存储在弹性搜索中?

分享于2023年05月08日 elasticsearch 问答
【问题标题】:How data is stored physically in elastic search?数据如何物理存储在弹性搜索中?
【发布时间】:2023-05-01 23:07:01
【问题描述】:

如果我导航到弹性搜索的数据目录:

/nodes/0/indices/gb

树命令显示的内容如下:

├── 0 │   ├── 索引 │   │   ├── 段_6 │   │   └── write.lock │   ├── _state │   │   └── state-6.st │   └── translog │   ├── translog-1.ckp │   ├── translog-2.ckp │   ├── translog-3.ckp │   ├── translog-4.ckp │   ├── translog-5.ckp │   ├── translog-5.tlog │   ├── translog-6.ckp │   ├── translog-6.tlog │   ├── translog-7.tlog │   └── translog.ckp ├── 1 │   ├── 索引 │   │   ├── _0_1.liv │   │   ├── _0.cfe │   │   ├── _0.cfs │   │   ├── _0.si │   │   ├── _1.cfe │   │   ├── _1.cfs │   │   ├── _1.si │   │   ├── segment_9 │   │   └── write.lock │   ├── _state │   │   └── state-6.st │   └── translog │   ├── translog-2.ckp │   ├── translog-3.ckp │   ├── translog-4.ckp │   ├── translog-5.ckp │   ├── translog-9.tlog │   └── translog.ckp ├── 2 │   ├── 索引 │   │   ├── _0.cfe │   │   ├── _0.cfs │   │   ├── _0.si │   │   ├── segment_7 │   │   └── write.lock │   ├── _state │   │   └── state-6.st │   └── translog │   ├── translog-2.ckp │   ├── translog-3.ckp │   ├── translog-4.ckp │   ├── translog-5.ckp │   ├── translog-6.ckp │   ├── translog-6.tlog │   ├── translog-7.ckp │   ├── translog-7.tlog │   ├── translog-8.tlog │   └── translog.ckp ├── 3 │   ├── 索引 │   │   ├── _0.cfe │   │   ├── _0.cfs │   │   ├── _0.si │   │   ├── segment_7 │   │   └── write.lock │   ├── _state │   │   └── state-6.st │   └── translog │   ├── translog-2.ckp │   ├── translog-3.ckp │   ├── translog-4.ckp │   ├── translog-5.ckp │   ├── translog-6.ckp │   ├── translog-6.tlog │   ├── translog-7.ckp │   ├── translog-7.tlog │   ├── translog-8.tlog │   └── translog.ckp ├── 4 │   ├── 索引 │   │   ├── _0.cfe │   │   ├── _0.cfs │   │   ├── _0.si │   │   ├── segment_7 │   │   └── write.lock │   ├── _state │   │   └── state-6.st │   └── translog │   ├── translog-2.ckp │   ├── translog-3.ckp │   ├── translog-4.ckp │   ├── translog-5.ckp │   ├── translog-6.ckp │   ├── translog-6.tlog │   ├── translog-7.ckp │   ├── translog-7.tlog │   ├── translog-8.tlog │   └── translog.ckp └── _state └── state-8.st

哪个文件包含实际数据?我怎么能看到那个?


【解决方案1】:

所有这些文件都包含数据,每个文件都包含特定类型的数据(倒排索引、字段数据、文档值等)。 index 子文件夹中的文件是 files created by Lucene 以便存储所有需要的数据:

我在上面给出的第一个链接中可以看到,还有更多可用的文件类型(词频、词邻近度等)。所有这些文件都是二进制文件,您不能简单地使用文本编辑器查看它们。您可以使用 Lucene 工具箱中的 Luke tool 来查看这些文件的内容。

【讨论】:

  • 感谢您的回答 Val。我尝试使用卢克工具。但它无法在弹性搜索数据目录中打开任何索引。它正在阅读过去的 EOF 。我试图删除并重新创建索引,仍然给出同样的问题。知道如何解决这个问题吗?