Creo que arruinaste algunas cosas en tu pregunta. Lucene (no sé nada sobre Lucene, NET, pero supongo que es lo mismo) es una biblioteca utilizada para analizar, dividir en tokens y almacenar documentos para poder consultarlos y recuperarlos más tarde. Lucene tiene un modelo bastante antiguo pero efectivo, utiliza árboles invertidos para buscar y recuperar documentos. Sin más detalles, todos los documentos se dividen en tokens (términos), y para cada término se mantiene una estructura de datos, que almacena todos los documentos que contienen el término dado. Como una estructura de datos podría usarse un BTree, una tabla hash y en las últimas revisiones importantes, incluso puede conectar sus propias estructuras de datos.
Un BTree (vea la página de Wikipedia para más detalles), es una especie de estructura de datos de árbol, que es apropiada para trabajar con grandes fragmentos de datos y a menudo se usa para almacenar estructuras ordenadas en forma de árbol en el disco. Para la memoria, otros árboles funcionan mejor.
Murmur hash (consulte la página de Wikipedia para obtener más detalles), es una familia de funciones hash utilizadas en la tabla hash. La implementación de la tabla hash no es importante, podría ser una implementación encadenada estándar o un esquema de direccionamiento hash abierto más avanzado. La idea es que las tablas hash le permiten a uno obtener rápidamente una clave, de un conjunto de claves desordenado, y puede responder a tareas como: ¿esta clave es parte de este conjunto de claves? ¿Cuál es el valor asociado con esta clave?
Ahora volvamos a su problema principal. Tiene una biblioteca (Lucene) y para estructuras de datos, ambas estructuras de datos se utilizan en Lucene. Ahora verá que no es posible responder su pregunta en estos términos, ya que no son comparables.
Sin embargo, con respecto a su huella y rendimiento, parte de la pregunta. En primer lugar, debe saber qué tipo de operaciones necesita implementar.
¿Necesita solo obtener valor para la clave, o necesita encontrar todos los elementos en un rango? En otras palabras, ¿necesitas orden o no? Si lo hace, entonces un árbol puede ayudar. Si no lo hace, podría usarse una tabla hash, que es más rápida.
¿Tiene muchos datos que no se ajustan a la memoria? En caso afirmativo, una solución basada en disco ayudaría (como BTree). Si sus datos se ajustan a la memoria, utilice la solución en memoria más rápida y utilice el disco solo como almacenamiento (con una estructura diferente, mucho más simple).