RediSearch

Vector DatabasesDevOpsRust

★ 6,237주당 +2조회 4

무엇인가

RediSearch는 Redis 위에서 동작하는 쿼리·인덱싱 엔진이다. 데이터 저장소 자체를 대체하지 않고, Redis 해시에 선언한 인덱스를 통해 보조 인덱스·전문 검색·집계·벡터 검색을 같은 프로세스 안에서 처리한다. Redis 8부터는 코어에 통합되어 별도 모듈로 배포되지 않는다.

어떻게 동작하나

인덱스는 Redis 해시의 필드를 대상으로 선언한다. 모듈은 해당 필드 값에서 압축된 역색인(inverted index)을 만들어 메모리에 유지하고, 문서가 추가·변경될 때마다 증분 갱신한다. 질의는 불리언 연산자(AND/OR/NOT), 접두사·퍼지·정확 구문 매칭, 숫자 범위 필터, 지오셰이프, 벡터 KNN·필터드 KNN·범위 질의를 지원한다. 결과 순위는 기본 BM25로 계산하며 필드별 가중치를 지정할 수 있다. 형태소 처리는 Snowball 어간 추출, 중국어 토큰화는 Friso, 음성 매칭은 double-metaphone을 사용한다. 집계 엔진은 검색 결과를 그룹화·변환해 반환한다.

무엇과 다른가

별도 검색 엔진을 Redis 옆에 두는 구성과 달리, 인덱스가 Redis 프로세스 안에 있고 원본 문서도 Redis 해시에 그대로 남는다. 검색 엔진으로 데이터를 복제·동기화하는 파이프라인이 필요 없다. Redis의 키 순회는 패턴 매칭만 가능하고 필드 값 조건으로 후보를 좁힐 수 없는데, RediSearch는 역색인으로 대상을 먼저 추린다.

어떻게 쓰나

Redis 8 이상에서는 모듈이 이미 포함되어 있어 별도 설치 과정이 없다. 이전 버전에서는 redis.conf의 loadmodule 지시자나 서버 기동 옵션으로 모듈을 적재한다. 이후 해시 필드에 인덱스를 선언하고 RediSearch 질의 언어로 검색·집계를 실행한다. redis-cli를 포함한 Redis 클라이언트가 같은 명령을 전송한다.

전제와 한계

32비트 시스템은 지원하지 않는다. 독립 실행 버전은 더 이상 릴리스되지 않고 Redis 8 이상에 포함된 형태로만 제공된다. 수백 대 서버에 걸쳐 수십억 문서로 확장하는 분산 클러스터 버전은 Redis Cloud와 Redis Enterprise Software에서만 쓸 수 있다. Redis 8부터 라이선스는 RSALv2, SSPLv1, AGPLv3 중 선택이며 이전 버전은 RSALv2와 SSPLv1을 따른다.

유사 도구