【问题标题】:Solr: Document size inexplicably largeSolr:文档大小莫名其妙地大
【发布时间】:2020-11-27 11:20:48
【问题描述】:

我在测试服务器上更新到 Solr 8.4.0(从 6.x)并重新编制索引(这是一个复杂的 Moodle 系统的索引,主要是许多非常小的文档)。它最初工作,但后来磁盘空间不足,所以我删除了所有内容并尝试索引数据的较小子集,但它仍然用完了磁盘空间。

查看段信息图表,第一段似乎合理:

段_2a1u: #docs:603,564 #dels: 1 大小:5,275,671,226 字节 年龄:2020-11-25T22:10:05.023Z 来源:合并

这是每个文档 8,740 字节 - 有点高但还不错。

段_28ow: #docs:241,082 #dels:31 大小:5,251,034,504 字节 年龄:2020-11-25T18:33:59.636Z 来源:合并

每个文档 21,781 个字节

段_2ajc: #文档:50,159 #dels: 1 大小:5,222,429,424 字节 年龄:2020-11-25T23:29:35.391Z 来源:合并

每个文档 104,117 个字节!

看看结尾处的小片段,情况会变得更糟:

段_2bff: #文档:2 #dels: 0 大小:23,605,447 字节 年龄:2020-11-26T01:36:02.130Z 来源:冲洗

我们的所有搜索文档都不会包含这么多文本。

在我们的生产 Solr 6.6 服务器上,它具有类似但稍大的数据(出于隐私原因,其中一些在测试服务器中被替换为短占位符文本),5GB 的大型分段包含 180 万到 500 万个文档。

有人知道这里出了什么问题吗?我们正在使用 Solr Cell/Tika,我想知道它是否以某种方式开始存储整个文件而不仅仅是提取的文本?

【问题讨论】:

  • 我不确定 Luke 是否可以直接打开分段文件,但我会从那里开始。 Luke 包含在标准的 Lucene 二进制发行版中:lucene.apache.org/core/downloads.html - 但您对包含更多信息的新版本 Tika 的猜测可能是正确的假设。您是否尝试过查看 _2bff 中包含的文档以查看它们包含哪些字段和内容?
  • 感谢您的建议!让我接下来可以尝试一些东西。我还检查了两个版本之间的 solrconfig.xml,发现新版本中的 Solr Cell 配置缺少 ignored_ 行,这肯定看起来可能使用更多空格...我会纠正它并重试作为第一步。
  • 那肯定会有所作为,是的。在许多格式(例如 PDF 文件)中,元数据可以包含矢量图、缩略图、颜色分析器等。
  • 我试过 Luke,但它不仅不能让您打开单个段文件,而且也不能让您查看哪些文件在哪个段中 - 我也找不到其他任何东西。 (我以前想知道,由于不同的原因,没有简单的方法来显示它,这很烦人。)最终通过二进制搜索类型的过程(索引较小的块),我设法缩小了具有问题...

标签: solr


【解决方案1】:

事实证明,一个 10MB 的英文 PowerPoint 文件被索引,其中大部分是图片,整个内容只有大约 50 个单词的文本,被索引为近 50 万个术语,其中大部分是中文人物。据推测,Tika 错误地提取了 PowerPoint 文件的一些二进制内容,就好像它是文本一样。

我只能通过反复试验减少索引来找到这一点,直到其中只有少数文档(3 个文档但使用 13MB 磁盘空间),然后 Luke 'Overview' 选项卡让我看到一个字段(在我的架构中称为 solr_filecontent)包含索引的 Tika 结果有 451,029 个术语。然后,点击“Show top terms”会显示一堆汉字。

我不确定是否有比反复试验更省力的方法来发现这个问题,例如如果有任何方法可以找到具有大量相关术语的文档。 (很明显,它可能是一个非常大的 PDF 或者合法地有这么多术语的东西,但在这种情况下,它不是。)这将很有用,因为即使我们的系统中只有几个这样的实例,它们也可以对整体索引大小的贡献很大。

至于解决问题:

1 - 我可以破解一些东西来阻止它索引这个单独的文档(在我们的测试数据中重复使用,否则我可能不会注意到)但大概在其他情况下也可能出现问题。

2 - 我考虑以某种方式排除这些术语,但我们的索引中确实有一小部分各种语言的内容,包括中文,所以即使有办法将其配置为仅使用 ASCII 文本或其他内容,这无济于事。

3 - 我的下一步是尝试不同的版本,看看同一个文件会发生什么,以防它是特定 Tika 版本中的错误。但是,我已经使用一系列 Solr 版本(6.6.2、8.4.0、8.6.3 和 8.7.0)进行了测试,并且所有这些版本都发生了相同的行为。

所以我的结论是:

  • 与我最初认为这与版本升级有关的假设相反,现在它实际上并不比旧 Solr 版本更糟。

  • 为了让这个工作现在我可能不得不做一个黑客来阻止它索引那个特定的 PowerPoint 文件(这在我们的测试数据集上经常出现)。大概真正的数据集不会有太多这样的文件,否则它已经用完了那里的磁盘空间......

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
相关资源
最近更新 更多