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

'Notes > Redis' 카테고리의 다른 글

LUA 스크립트  (0) 2025.07.24

기본

-- 출력
print(123)
print('Hello World')
print("Hello World")

-- 변수 local 선언
local sumLocal = 1 + 1
print(sumLocal)

-- 변수 global 선언
sumGlobal = 2 + 2
print(sumGlobal)

-- if-then-end 
local a = 1

if a > 0 then 
    print("a 는 0보다 크다")
end

if a ~= 0 then  -- not 비교
    print("a는 0이 아니다")
end

if a == 1 then  -- 동일 비교
    print("a는 1이다")
end

if 0 and '' then 
    print("0과 빈문자열은 참이다")
end

if false or not true then
    print("이 출력문은 표시되지 않는다")
end

 

배열

-- 배열
local colors = {'red','green','blue'}

-- lua의 배열 인덱스는 "1"부터 시작
print(colors[1]) 

-- 요소의 수
print(#colors)

-- 추가
table.insert(colors, 'orange')
print(colors[4]) 
print(#colors)

-- 배열 순회
for i, v in ipairs(colors) do
    print(i, v)
end

-- 범위 순회
for i=5, 10 do 
    print(i)
end

 

테이블

-- lua table은 javascript 의 object 와 유사하다
local user = {id = 'a1', name = 'samantha'}
print(user['id'])
print(user['name'])

for k, v in pairs(user) do
    print(k, v)
end

'Notes > Redis' 카테고리의 다른 글

RedisSearch Commands  (2) 2025.08.14

+ Recent posts