【发布时间】:2010-12-21 14:36:05
【问题描述】:
我们已经建立了一个包含 3600 万个文档(每个约 1K-2K)的 Solr 索引,我们尝试查询最多 100 个与单个简单关键字匹配的文档。正如我们所希望的那样,这工作得非常快。 但是,如果我们现在将“&sort=createDate+desc”添加到查询中(从而要求与查询匹配的前 100 个“新”文档),它将运行很长时间,最终导致 OutOfMemoryException。 根据我从手册中了解到的情况,这是由于 Lucene 在执行查询之前需要将此字段(createDate)的所有不同值加载到内存(FieldCache afaik)中。由于 createDate 字段包含日期和时间,因此不同值的数量非常大。 值得一提的是,我们经常更新索引。
也许有人可以就我们如何调整 Lucene / Solr 或改变我们的方法以使查询时间变得可以接受提供一些见解和指导? 您的意见将不胜感激!谢谢。
【问题讨论】: