Java로 작성된 고성능 풀 기능 텍스트 검색 엔진 라이브러리로, 검색 애플리케이션의 기반으로 사용됩니다.
RoaringBitmap/RoaringBitmap
다른 형식보다 적은 메모리로 정수 집합의 집합 연산을 빠르게 수행하는 압축 비트맵(Roaring bitmap) Java 라이브러리입니다.
- 스타
- 3,956
- 포크
- 599
- 열린 이슈
- 81
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
RoaringBitmap은 정수 집합을 압축 비트맵으로 저장하는 Java 라이브러리입니다. 값을 65,536개 단위의 청크로 나누고 각 청크마다 배열, 비트맵 또는 런렝스 컨테이너를 선택하므로, WAH, EWAH, Concise 같은 런렝스 형식보다 메모리를 적게 사용하면서 임의 접근과 빠른 교집합·합집합·차집합 연산을 지원합니다.
이 라이브러리는 32비트 비트맵, 64비트 비트맵(Roaring64Bitmap 및 Roaring64NavigableMap), org.roaringbitmap.buffer 패키지를 통한 메모리 매핑 불변 비트맵, copy-on-write 비트맵, 범위 쿼리를 위한 RangeBitmap을 제공합니다. 비트맵은 C/C++ 및 Go 구현과 공유하는 형식으로 직렬화할 수 있습니다.
Apache Spark, Apache Hive, Apache Druid, Apache Pinot, Apache Iceberg, Apache Flink 등의 프로젝트에서 주로 데이터베이스와 검색 엔진의 인덱싱 및 집합 연산에 사용합니다.
핵심 기능
- 01정수 집합에 대해 AND, OR, XOR, ANDNOT 연산을 빠르게 수행하는 압축 비트맵입니다.
- 02비트맵 전체를 압축 해제하지 않고도 임의 접근(contains, rank, select)을 할 수 있습니다.
- 03Roaring64Bitmap 및 Roaring64NavigableMap으로 64비트 정수를 지원합니다.
- 04메모리 매핑 불변 비트맵과 copy-on-write 가변 비트맵을 제공합니다.
- 05미만 및 초과 조건과 같은 범위 쿼리에 RangeBitmap을 사용할 수 있습니다.
- 06C/C++ 및 Go 구현과 호환되는 직렬화 형식을 지원합니다.
활용 사례
- 데이터베이스나 검색 엔진에서 역색인 또는 행 ID 집합을 구축합니다.
- Java 서비스에서 대규모 문서 ID 또는 사용자 ID 집합의 교집합을 빠르게 계산합니다.
- 대규모 정수 집합을 메모리 또는 메모리 매핑 파일에 더 적은 RAM으로 저장합니다.
- 분석 코드의 숫자형 열에 범위 필터링을 추가합니다.
빠른 시작
- 1
Maven Central 의존성을 pom.xml에 추가합니다
- 2
Java 코드에서 RoaringBitmap 클래스를 사용합니다(import org.roaringbitmap.RoaringBitmap)
토픽
자주 묻는 질문
- RoaringBitmap은(는) 무엇인가요?
- 다른 형식보다 적은 메모리로 정수 집합의 집합 연산을 빠르게 수행하는 압축 비트맵(Roaring bitmap) Java 라이브러리입니다. RoaringBitmap은 정수 집합을 압축 비트맵으로 저장하는 Java 라이브러리입니다. 값을 65,536개 단위의 청크로 나누고 각 청크마다 배열, 비트맵 또는 런렝스 컨테이너를 선택하므로, WAH, EWAH, Concise 같은 런렝스 형식보다 메모리를 적게 사용하면서 임의 접근과 빠른 교집합·합집합·차집합 연산을 지원합니다.
- RoaringBitmap은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- RoaringBitmap은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- RoaringBitmap은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. RoaringBitmap의 마지막 커밋은 2026년 11월 4일입니다.
- RoaringBitmap은(는) 어디에 사용할 수 있나요?
- 데이터베이스나 검색 엔진에서 역색인 또는 행 ID 집합을 구축합니다. Java 서비스에서 대규모 문서 ID 또는 사용자 ID 집합의 교집합을 빠르게 계산합니다. 대규모 정수 집합을 메모리 또는 메모리 매핑 파일에 더 적은 RAM으로 저장합니다. 분석 코드의 숫자형 열에 범위 필터링을 추가합니다.
- RoaringBitmap는 어떻게 설치하나요?
- Maven Central 의존성을 pom.xml에 추가합니다 Java 코드에서 RoaringBitmap 클래스를 사용합니다(import org.roaringbitmap.RoaringBitmap)
- RoaringBitmap은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/RoaringBitmap/RoaringBitmap
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Apache Lucene에서 영감을 받은 Rust 전문 검색 엔진 라이브러리로, 애플리케이션에 맞춤형 검색 기능을 구현할 수 있습니다.
Swift 개발자가 자주 사용하는 덱, 힙, 순서가 유지되는 세트와 딕셔너리, 비트 세트 등의 자료 구조를 제공하는 Swift 패키지입니다.
Apache Druid는 빠른 쿼리와 데이터 적재를 지원하는 고성능 실시간 분석 데이터베이스입니다.
Apache Solr는 전문 검색, 벡터 검색, 지리 공간 검색을 지원하는 Apache Lucene 기반 오픈소스 멀티모달 검색 플랫폼입니다.
라틴 문자와 CJK(중국어, 일본어, 한국어) 문자를 지원하는 산세리프 고딕 스타일의 오픈소스 픽셀 폰트입니다.