1

作为实验的一部分,我尝试在 Lucene 上构建一些实时聚合。文档的值存储在索引中。这对于多达 10K 的文档非常有效。

对于大量文档,这会有点慢。我认为在获取大量文档方面没有太多投资,因为这种方式违背了搜索引擎的目的。

但是,能够做到这一点会很酷。所以,基本上我的问题是:我能做些什么来更快地从 Lucene 获取文档?还是有更聪明的方法?

我已经只检索我需要的字段。

[编辑] 索引相当大 > 50GB。这不适合记忆。字段数量不同,我有几种类型的文档。聚合将主要发生在固定的文档类型上;但没有办法事先知道是哪一个。

4

1 回答 1

2

你把索引放在内存中了吗?如果整个索引都适合内存,那将是一个巨大的加速。

一旦你得到命中(即使是 10k 记录也能很快返回),我会打开多个线程/阅读器来访问它们。

我所做的另一件事是在 Lucene 中只存储一些属性(即不存储一个类的 50 个属性)。有时,您可以通过获取 ID 列表并更快地从服务/数据库中获取其他内容来加快速度。

于 2013-08-13T02:09:58.577 回答