Redisearch 개요

Redisearch 개요

Redisearch는 Redis에 풀텍스트 검색과 벡터 유사도 검색을 더해 주는 모듈(Redis Stack의 일부)이에요. 기존 Redis 명령어 스타일로 세컨더리 인덱스를 만들고 쿼리할 수 있어서, 이미 Redis를 쓰는 서비스라면 별도 검색 엔진 없이도 검색 기능을 얹을 수 있어요.

출처: https://redis.io/docs/latest/develop/data-types/search/

검색과 인덱싱

Redisearch는 문서를 해시(Hash)나 JSON 형태로 저장된 데이터 위에 인덱스를 만들어 검색해요. FT.CREATE로 인덱스를, FT.SEARCH로 검색을, HSET 등으로 데이터를 넣으면 돼요. 인덱스를 만들면 이후 쓰여지는 데이터가 자동으로 인덱싱돼요.

기본 구조는 다음과 같아요.

  1. 데이터를 해시로 저장한다 (예: HSET idx:1 title "Hello").
  2. FT.CREATE로 해당 데이터를 검색할 인덱스를 만든다.
  3. FT.SEARCH로 검색한다.

벡터 검색

Redisearch의 최신 버전은 벡터 유사도 검색(텍스트 임베딩)도 지원해요. 벡터 필드를 가지는 인덱스를 만들고, 쿼리 벡터와의 거리(KNN)를 기준으로 근접 이웃을 찾아요. 이때 HNSW나 FLAT 인덱스 타입을 고를 수 있어요.

검색 기능 요약

Redisearch는 다음 기능을 지원해요.

  • 풀텍스트 검색과 토큰화, 형태소 처리
  • 필터링(숫자·태그·지리)
  • 동의어와 퍼지 매칭
  • 정렬과 페이지네이션
  • 집계(FT.AGGREGATE)
  • 벡터 유사도 검색

더 알아보기