我們已經建立了包含3600萬個文檔(每個〜1K-2K)的Solr索引,我們嘗試查詢最多100個匹配單個簡單關鍵字的文檔。這項工作非常快,正如我們所希望的那樣。但是,如果我們現在向查詢添加「& sort = createDate + desc」(因此要求匹配查詢的前100個'新'文檔),它會運行很長很長的時間,並最終導致出現OutOfMemoryException。 從我從手冊中瞭解到,這是由Lucene需要在執行查詢之前將此字段的所有不同值(createDate)加載到內存(FieldCache afaik)中引起的。由於createDate字段包含日期和時間,所以不同值的數量非常大。 同樣重要的是,我們經常更新索引。在Solr/Lucene性能問題中按日期排序
也許有人可以提供一些關於如何調整Lucene/Solr或改變我們的方法的見解和方向,使查詢時間變得可以接受? 您的輸入將會非常感謝!謝謝。
感謝您的意見,Sashikant!事實上,升級到Solr 1.4(實現Lucene 2.9)有很大的不同。對於我們來說,它的主要優勢在於,它維護每個段的FieldCache,並且在提交未更改的段之後不需要重新加載它。 – schuilr 2009-11-30 14:32:48