Warm tip: This article is reproduced from serverfault.com, please click

其他-Solr:文档大小异常大

(其他 - Solr: Document size inexplicably large)

发布于 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源:merge

每个文档21,781字节

段_2ajc:#docs:50,159 #dels:1大小:5,222,429,424字节使用期限:2020-11-25T23:29:35.391Z源:merge

每个文档104,117字节!

更糟糕的是,观察一下末端的小片段:

段_2bff:#docs:2 #dels:0大小:23,605,447字节使用期限:2020-11-26T01:36:02.130Z源:刷新

我们的搜索文档中没有一个包含那么多文字。

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

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

Questioner
sam marshall
Viewed
0
sam marshall 2020-12-01 22:51:46

事实证明,对一个10MB的英语PowerPoint文件进行了索引,其中大部分是图片,而整个内容中只有大约50个单词的文本被索引(关闭了元数据),将近100万个术语被索引了,其中大多数是汉字。据推测,Tika可能错误地提取了PowerPoint文件的某些二进制内容,就好像它是文本一样。

我只能通过反复尝试减少索引来找到它,直到其中只有少量文档(3个文档,但使用13MB磁盘空间),然后Luke的“ Overview”选项卡让我看到了一个字段(称为solr_filecontent在我的模式中)(其中包含索引化的Tika结果)有451,029个字词。然后,点击“显示热门词语”将显示一堆汉字。

我不确定是否有比反复试验少得多的麻烦方法来查找此问题,例如,是否可以找到与大量术语相关联的文档。(显然,它可能是一个非常大的PDF或具有合理术语的东西,但在这种情况下则不是。)这将很有用,因为即使我们系统中只有少数此类实例,它们也可以对整体索引大小的贡献很大。

至于解决问题:

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

2-我考虑过以某种方式排除这些术语,但是我们在索引中确实包含一小部分包含多种语言的内容,包括中文,因此即使可以将其配置为仅使用ASCII文本或其他方式,也不会没有帮助。

3-我的下一步是尝试不同的版本,以查看同一文件会发生什么情况,以防特定的Tika版本出现错误。但是,我已经测试了一系列Solr版本-6.6.2、8.4.0、8.6.3和8.7.0-并在所有它们上都发生了相同的行为。

所以我从所有这一切得出的结论是:

  • 与我最初的想法(与版本升级有关)相反,它实际上并没有比旧的Solr版本更糟。

  • 为了现在可以正常工作,我可能必须做一个破解来阻止它索引该特定的PowerPoint文件(在我们的测试数据集中经常发生)。大概真实的数据集不会有太多像这样的文件,否则它将已经用完了那里的磁盘空间...