나는 당신이 당신의 질문에서 몇 가지를 엉망으로 생각합니다. Lucene (Lucene, NET에 대해서는 아무것도 모르지만 동일하다고 가정)은 나중에 쿼리하고 검색 할 수 있도록 토큰을 분석하고 토큰으로 나누고 문서를 저장하는 데 사용되는 라이브러리입니다. Lucene은 꽤 오래되었지만 효과적인 모델이며 반전 트리를 사용하여 문서를 찾고 검색합니다. 자세한 내용이 없으면 모든 문서가 토큰 (용어)으로 분할되며 각 용어에 대해 주어진 용어가 포함 된 모든 문서를 저장하는 데이터 구조가 유지됩니다. 데이터 구조를 BTree, 해시 테이블 및 최신 주요 개정판으로 사용할 수 있으므로 자체 데이터 구조를 연결할 수도 있습니다.
BTree (자세한 내용은 Wikipedia 페이지 참조)는 일종의 트리 데이터 구조로, 많은 양의 데이터를 처리하는 데 적합하며 종종 트리와 같이 정렬 된 구조를 디스크에 저장하는 데 사용됩니다. 인 메모리의 경우 다른 트리가 더 잘 수행됩니다.
Murmur 해시 (자세한 내용은 Wikipedia 페이지 참조)는 해시 테이블에 사용되는 해시 함수 제품군입니다. 해시 테이블의 구현은 중요하지 않으며 표준 체인 구현 또는 고급 개방형 해시 주소 지정 체계 일 수 있습니다. 해시 테이블을 사용하면 정렬되지 않은 키 세트에서 키를 빨리 가져올 수 있으며 다음과 같은 작업에 응답 할 수 있습니다.이 키가이 키 세트의 일부입니까? 이 키와 관련된 값은 무엇입니까?
이제 주요 문제로 돌아갑니다. 하나의 라이브러리 (Lucene)와 데이터 구조가 있으며 두 데이터 구조 모두 Lucene에서 사용됩니다. 이제 귀하는 귀하의 질문에 대해 비교할 수 없으므로 귀하의 질문에 답변 할 수 없습니다.
그러나 당신의 발자국과 성능 부분에 대해서는 우선 어떤 종류의 작업을 구현해야하는지 알아야합니다.
키 값만 가져 오거나 범위 내의 모든 요소를 찾아야합니까? 즉, 주문이 필요합니까? 그렇게하면 나무보다 도움이 될 수 있습니다. 그렇지 않으면 해시 테이블보다 빠른 것이 대신 사용될 수 있습니다.
메모리에 맞지 않는 많은 데이터가 있습니까? 그렇다면 BTree와 같은 디스크 기반 솔루션보다 도움이 될 것입니다. 데이터가 메모리에 맞는 경우 가장 빠른 인 메모리 솔루션을 사용하고 디스크를 스토리지로만 사용하십시오 (다른 구조의 경우 훨씬 단순함).