Sanırım sorunuzdaki bazı şeyleri berbat ettiniz. Lucene (Lucene, NET hakkında hiçbir şey bilmiyorum, ama sanırım aynı) daha sonra sorgulamak ve almak için belgeleri analiz etmek, jetonlara bölmek ve belgeleri saklamak için kullanılan bir kütüphane. Lucene oldukça eski ama etkili bir modele sahip, belgeleri bulmak ve almak için ters çevrilmiş ağaçlar kullanıyor. Daha fazla ayrıntı olmadan, tüm belgeler belirteçlere (terimler) bölünür ve her terim için, belirtilen terimi içeren tüm belgeleri saklayan bir veri yapısı korunur. Bir veri yapısı bir BTree, bir karma tablo kullanılabilir ve en son büyük revizyonlarda kendi veri yapılarınızı bile takabilirsiniz.
BTree ( daha fazla ayrıntı için Wikipedia sayfasına bakın), büyük veri parçalarıyla çalışmaya uygun ve genellikle ağaç benzeri sıralı yapıları diskte depolamak için kullanılan bir tür ağaç veri yapısıdır. Bellek içi için diğer ağaçlar daha iyi performans gösterir.
Murmur karma ( daha fazla bilgi için Wikipedia sayfasına bakın), karma tabloda kullanılan karma işlevler ailesidir. Karma tablonun uygulanması önemli değildir, standart zincirli bir uygulama veya daha gelişmiş açık karma adresleme şeması olabilir. Fikir şudur ki, hash tabloları bir kişinin sıralanmamış bir anahtar kümesinden hızlı bir anahtar almasına izin verir ve aşağıdaki gibi görevlere cevap verebilir: bu anahtar kümesinin bu anahtar kısmı mı? bu anahtarla ilişkilendirilen değer nedir?
Şimdi ana probleminize geri dönelim. Bir kütüphaneniz (Lucene) var ve veri yapıları için her iki veri yapısı da Lucene'de kullanılıyor. Şimdi, karşılaştırılabilir olmadıkları için sorunuzu bu terimlerle cevaplamanın mümkün olmadığını görüyorsunuz.
Ancak, sizinle ilgili ayak izi ve performans sorunun bir parçası. Her şeyden önce, ne tür işlemleri gerçekleştirmeniz gerektiğini bilmelisiniz.
Sadece anahtar için değer almanız mı gerekiyor yoksa bir aralıktaki tüm öğeleri bulmanız mı gerekiyor? Başka bir deyişle düzene ihtiyacınız var mı değil mi? Eğer yaparsanız, bir ağaç daha yardımcı olabilir. Bunu yapmazsanız, bunun yerine daha hızlı olan bir karma tablodan daha fazla kullanılabilir.
Belleğe sığmayan çok fazla veri var mı? Evet ise, disk tabanlı bir çözüm daha yararlı olacaktır (BTree gibi). Verileriniz belleğe sığarsa, en hızlı bellek içi çözümü kullanmaktan ve diski yalnızca depolama alanı olarak kullanmaktan (farklı bir yapıda, çok daha basit).