2012-01-11 42 views
4

现在,我们使用Solr作为全文索引,其中文档的所有字段都被索引但未存储。 有几百万个文件,索引大小是50 GB。平均查询时间大约为100ms。索引大小对搜索速度的影响(存储或不存储)

要使用突出显示等功能,我们正在考虑:额外的商店文本。但是,这可能会使索引文件的大​​小加倍。

我知道索引大小和查询时间之间绝对没有(线性)关系。将因素10上的文档上升会导致查询时间几乎没有差异。

但是,系统(Solr/Lucene/Linux/...)必须处理更多信息 - 索引文件(例如)基于更多的I节点等等。

所以我敢肯定,对索引大小的查询时间有影响。 (但是:这是显而易见的吗?)

1st: 你认为我是对的吗? 您是否有任何关于索引大小和搜索速度的经验? 通过存储文档来炸开索引是否合理又合理?

2nd: 您知道吗,Solr/Lucene如何处理存储的文本?也许在单独的文件? (因此,对简单搜索没有影响,因为不需要存储文本!)

谢谢。

+0

我可以知道我的答案是否有用吗?你在找别的东西吗? – javanna 2012-01-14 11:13:06

+0

我写了这个问题,以便获得关于索引大小取决于搜索速度的影响的感觉 - 也许来自有实际经验的人。所以“我不认为”不会帮助我。将你的链接发布到lucene文件doc很有用。 – 2012-01-18 16:23:24

+0

那么,我确实有实际经验,而且我从来没有在存储字段时遇到性能问题,而我遇到了尺寸问题。此外,链接证明存储区域不会降低性能。这不是回答你的问题吗? – javanna 2012-01-18 16:53:15

回答

1

是的,如果您存储大字段,索引增长是绝对正确的,但如果您想突出显示它们,则没有其他方法。我不认为速度会下降很多,也许只是因为你需要下载更多的数据检索结果,但这不是那么相关。

关于lucene索引格式和索引内的不同文件,您可以看看here:存储的字段存储在特定的文件中。

+0

如果您想突出显示,您不必存储,您可以获取原始数据并重新分析数据库中的原始内容,然后突出显示。 – milan 2012-01-11 15:29:51

+0

当然,如果你有一个分贝。我不确定在性能方面的成本是多少。我的意思是,如果你已经有了一个你需要的数据的分区,它可以节省文件系统的空间,但也许比在性能方面存储字段更糟。 – javanna 2012-01-11 15:33:10

+0

每次都必须重新分析,这就是权衡。存储字段不应影响搜索性能,因为它们无论如何都会转到其他文件。不知道这是否符合复合索引格式.. – milan 2012-01-11 15:39:22