Redis Search 쿼리 하기

Redis Search 쿼리 하기 (Querying data)

Redis 오픈소스는 쿼리 명령으로 FT.SEARCHFT.AGGREGATE를 구분합니다. 선택(selection)과 투영(projection)만 하려면 FT.SEARCH를 쓰고, 매핑 함수 적용·그룹화·집계도 필요하다면 FT.AGGREGATE를 씁니다.

  • 선택(selection): 특정 기준을 충족하는 모든 문서를 반환하는 것.
  • 투영(projection): 결과 집합의 특정 필드를 반환하는 것. 계산된 필드 값으로 매핑/투영할 수도 있습니다.
  • 집계(aggregation): 여러 필드에 걸쳐 데이터를 모아 요약하는 것.

출처: https://redis.io/docs/latest/develop/ai/search-and-query/query/

SQL vs Redis 쿼리 비교

자전거 데이터셋(bicycles.txt)을 이용한 짧은 SQL 비교:

유형 SQL Redis
선택 SELECT * FROM bicycles WHERE price >= 1000 FT.SEARCH idx:bicycle "@price:[1000 +inf]"
단순 투영 SELECT id, price FROM bicycles FT.SEARCH idx:bicycle "*" RETURN 2 __key, price
계산 투영 SELECT id, price-price*0.1 AS discounted FROM bicycles FT.AGGREGATE idx:bicycle "*" LOAD 2 __key price APPLY "@price-@price*0.1" AS discounted
집계 SELECT condition, AVG(price) AS avg_price FROM bicycles GROUP BY condition FT.AGGREGATE idx:bicycle "*" GROUPBY 1 @condition REDUCE AVG 1 @price AS avg_price

표를 보면 알 수 있듯, 선택·단순 투영은 FT.SEARCH로, 계산 투영·집계는 FT.AGGREGATE로 처리합니다.

FT.SEARCH 쿼리 유형

다음 문서들이 FT.SEARCH 명령으로 데이터를 쿼리하는 방법을 다룹니다.

FT.AGGREGATE 집계 쿼리

FT.AGGREGATE로 집계 쿼리하는 더 자세한 내용은 다음 문서에서 볼 수 있습니다.

더 알아보기 (Learn more)