Example
# Hash 추가
HSET cars#a1 name 'fast car' color red year 1950
HSET cars#b1 name 'car' color red year 1960
HSET cars#c1 name 'old car' color blue year 1970
HSET cars#d1 name 'new car' color blue year 1990
FT.CREATE - 인덱스 생성
# 인덱스 생성
FT.CREATE idx:{인덱스명} ON {HASH or JSON} PREFIX {키접두어수} {...키접두어} SCHEMA {...name type}
FT.CREATE idx:cars ON HASH PREFIX 1 cars# SCHEMA name TEXT year NUMERIC color TAG
FT.SEARCH - 조회
# 조회
- 문자열 검색
FT.SEARCH idx:cars '@name:(fast car)'
- 태그 검색
FT.SEARCH idx:cars '@color:{blue}'
- 숫자 검색
FT.SEARCH idx:cars '@year:[1955 1980]'
- 다중조건
FT.SEARCH idx:cars '@name:(fast car) @color:{blue}'
FT.SEARCH - 숫자 쿼리
# 경계값 포함
@year:[1955 1980]
# 경계값 미포함
@year:[(1955 (1980]
# Infinite
@year:[1955 +inf]
@year:[-inf 1955]
# 범위제외
-@year:[1955 1980]
FT.SEARCH - 태그 쿼리
# 동일값
@year:{blue}
# 제외
-@year:{blue}
# 또는(or)
@year:{red|blue}
# 공백처리
@year:{light\blue}
FT.SEARCH - 텍스트 검색
* 텍스트의 경우 스테밍(어간추출)으로 정확한 값이 아니라 알고리즘을 통하여 관련 단어로 "검색"
# 전체검색
fast
#'fast' and 'car' 검색
@name:(fast car)
#'fast' or 'car' 검색
@name:(fast|car)
#'fast' not 검색
-@name:(fast)
# 오탈자 검색
@name:(%dar%) // car <- 문자 하나의 불일치 허용
@name:(%%daar%%) // car <- 두 문자의 불일치 허용
@name:(%%%daarr%%%) // car <- 세 문자의 불일치 허용
# 접두어 검색(2글자 이상)
@name:(ca*) // car