2013-09-23 41 views
6

Bir Lucene dizini oluşturmak için kullanılabilecek çok sayıda dizin türü vardır. Bir RedHat makinesinde arama hızını arttırmak için hangisi en uygunudur (işletim sisteminin alakalı olup olmadığından emin değil)?Doğru Lucene Dizinini Seçme

  • RAMDirectory - kullanılamaz, endeks çok büyük
  • SimpleFSDirectory - Belki bu - bu basit 'çünkü ...
  • MMapDirectory bu bir olamaz mı?
  • NIOFSDirectory - Ya da bu? Eğer diğerlerine birini seçmek için iyi bir nedeniniz olmadıkça
  • Any better options?

cevap

7

, ben FSDirectory.open(File) çağırarak sade öneriyoruz. Bu Lucene'nin hangi uygulamanın ideal olduğuna karar vermesine izin verir. Sadece görmek, onları çalışıyor ve profilleme tavsiye edebilir,

public static FSDirectory open(File path, LockFactory lockFactory) throws IOException { 
    if ((Constants.WINDOWS || Constants.SUN_OS || Constants.LINUX) 
     && Constants.JRE_IS_64BIT && MMapDirectory.UNMAP_SUPPORTED) { 
    return new MMapDirectory(path, lockFactory); 
    } else if (Constants.WINDOWS) { 
    return new SimpleFSDirectory(path, lockFactory); 
    } else { 
    return new NIOFSDirectory(path, lockFactory); 
    } 
} 

bundan daha ideal bir seçim alma hakkında daha emin olmak denemek istiyorsanız: Burada merak için

, karar verilmeden nasıl En iyi performansı sağlar.

+0

güzel! ve indeksi oluştururken aynı şeyi yapmak zorunda kalacağım, değil mi? – Gevorg

+0

Evet, bir dizin oluştururken ya da değiştirirken ya da var olanı açarken aynı şekilde bir dizin açılabilir. – femtoRgon