あなたはあなたの質問のいくつかを台無しにしたと思います。Lucene(Lucene、NETについては何も知りませんが、同じだと思います)は、後でクエリを実行して取得できるようにするために、分析、トークンの分割、ドキュメントの保存に使用されるライブラリです。Luceneにはかなり古いが効果的なモデルがあり、逆ツリーを使用してドキュメントを検索および取得します。詳細がなければ、すべてのドキュメントはトークン(用語)に分割され、各用語についてデータ構造が維持されます。データ構造には、特定の用語を含むすべてのドキュメントが格納されます。データ構造はBTree、ハッシュテーブル、および最新のメジャーリビジョンでは独自のデータ構造にプラグインすることもできるため、使用できます。
BTree(詳細についてはWikipediaのページを参照)は一種のツリーデータ構造であり、大きなデータチャンクを扱うのに適しており、ツリーのような順序付けられた構造をディスクに格納するためによく使用されます。インメモリの場合、他のツリーの方がパフォーマンスが優れています。
Murmurハッシュ(詳細はWikipediaのページを参照)は、ハッシュテーブルで使用されるハッシュ関数のファミリーです。ハッシュテーブルの実装は重要ではありません。標準の連鎖実装またはより高度なオープンハッシュアドレッシングスキームの可能性があります。ハッシュテーブルを使用すると、順序付けされていないキーのセットからキーを高速に取得でき、次のようなタスクに応答できます。このキーはこのキーのセットの一部ですか?このキーに関連付けられている値はどれですか?
ここで、主な問題に戻ります。1つのライブラリ(Lucene)があり、データ構造に対して、両方のデータ構造がLuceneで使用されます。これらの用語は比較できないため、これらの用語で質問に答えることは不可能です。
ただし、フットプリントとパフォーマンスに関しては、質問の一部です。まず最初に、実装する必要がある操作の種類を知る必要があります。
キーの値のみを取得する必要がありますか、それとも範囲内のすべての要素を検索する必要がありますか?言い換えれば、あなたは注文が必要ですか?もしそうなら、木よりも助けることができます。そうしない場合は、ハッシュテーブルより高速ですが、代わりに使用できます。
メモリに収まらない多くのデータがありますか?はいの場合は、ディスクベースのソリューションが役立ちます(BTreeなど)。データがメモリに収まる場合は、最速のメモリ内ソリューションを使用し、ディスクをストレージとしてのみ使用します(構造が異なり、はるかに単純です)。