我认为你在你的问题中搞砸了一些事情。Lucene(我对 Lucene,NET 一无所知,但我想是一样的)是一个用于分析、拆分令牌和存储文档以便以后能够查询和检索它们的库。Lucene 有一个非常古老但有效的模型,它使用倒置树来查找和检索文档。在没有进一步细节的情况下,所有文档都被拆分为令牌(术语),并且为每个术语维护一个数据结构,该结构存储包含给定术语的所有文档。由于数据结构可以使用 BTree、哈希表,并且在最新的主要修订版中,您甚至可以插入自己的数据结构。
BTree(有关详细信息,请参阅Wikipedia 页面)是一种树数据结构,适用于处理大块数据,通常用于在磁盘上存储树状有序结构。对于内存中的其他树表现更好。
Murmur 哈希(有关详细信息,请参阅Wikipedia 页面)是哈希表中使用的一系列哈希函数。哈希表的实现并不重要,它可以是标准的链式实现或更高级的开放哈希寻址方案。这个想法是哈希表允许人们从一组无序的键中快速获取一个键,并且可以回答以下任务:这个键是这组键的一部分吗?与此键关联的值是什么?
现在回到你的主要问题。您有一个库(Lucene)和数据结构,两种数据结构都在 Lucene 中使用。现在您看到不可能用这些术语回答您的问题,因为它们不可比较。
但是,关于您的足迹和性能问题的一部分。首先你必须知道你需要实现哪种操作。
您只需要获取键的值,还是需要查找范围内的所有元素?换句话说,您是否需要订购?如果你这样做了,那么一棵树可以提供帮助。如果你不这样做,那么可以使用更快的哈希表来代替。
你有很多不适合内存的数据吗?如果是,那么基于磁盘的解决方案会有所帮助(如 BTree)。如果您的数据适合内存,则使用最快的内存解决方案并仅将磁盘用作存储(具有不同的结构,更简单)。