기본 연산자
Milvus는 데이터를 효율적으로 필터링하고 쿼리하는 데 도움이 되는 다양한 기본 연산자 세트를 제공합니다. 이러한 연산자를 사용하면 스칼라 필드, 숫자 계산, 논리적 조건 등을 기반으로 검색 조건을 세분화할 수 있습니다. 이러한 연산자를 사용하는 방법을 이해하는 것은 정확한 쿼리를 작성하고 검색의 효율성을 극대화하는 데 매우 중요합니다.
비교 연산자
비교 연산자는 같음, 같지 않음 또는 크기에 따라 데이터를 필터링하는 데 사용됩니다. 숫자, 텍스트, 날짜 필드에 적용할 수 있습니다.
지원되는 비교 연산자
==
(같음)!=
(같지 않음)>
(보다 큼)<
(보다 작음)>=
(보다 크거나 같음)<=
(다음보다 작거나 같음)
예 1: 같음(==
)으로 필터링
status
이라는 필드가 있고 status
이 "활성"인 모든 엔터티를 찾고자 한다고 가정합니다. 같음 연산자 ==
를 사용할 수 있습니다.
filter = 'status == "active"'
예 2: 같지 않음 (!=
)으로 필터링하기
status
이 "비활성"이 아닌 엔터티를 찾으려는 경우.
filter = 'status != "inactive"'
예 3: Greater Than (>
)으로 필터링하기
age
이 30보다 큰 모든 엔터티를 찾으려는 경우.
filter = 'age > 30'
예 4: 미만 (<
)으로 필터링하기
price
이 100 미만인 엔터티를 찾으려면 다음과 같이 하세요.
filter = 'price < 100'
예 5: 보다 크거나 같음(>=
)으로 필터링하기
rating
이 4보다 크거나 같은 모든 엔터티를 찾으려는 경우.
filter = 'rating >= 4'
예 6: 보다 작거나 같음(<=
)으로 필터링하기
discount
이 10% 이하인 엔터티를 찾으려면.
filter = 'discount <= 10'
범위 연산자
범위 연산자는 특정 집합 또는 값 범위를 기준으로 데이터를 필터링하는 데 도움이 됩니다.
지원되는 범위 연산자
IN
: 특정 집합 또는 범위 내의 값을 일치시키는 데 사용됩니다.LIKE
: 패턴을 일치시키는 데 사용됩니다(주로 텍스트 필드에 사용).
예 1: IN
사용하여 여러 값 일치시키기
color
이 "빨간색", "녹색" 또는 "파란색"인 모든 엔티티를 찾고자 하는 경우.
filter = 'color in ["red", "green", "blue"]'
이 방법은 값 목록에서 멤버십 여부를 확인하려는 경우에 유용합니다.
예 2: 패턴 일치에 LIKE
사용
LIKE
연산자는 문자열 필드에서 패턴 일치에 사용됩니다. 이 연산자는 텍스트 내에서 접두사, 접두사 또는 접미사 등 다양한 위치의 하위 문자열을 일치시킬 수 있습니다. LIKE
연산자는 %
기호를 와일드카드로 사용하며, 0을 포함하여 원하는 수의 문자를 일치시킬 수 있습니다.
접두사 일치(다음으로 시작)
문자열이 지정된 패턴으로 시작하는 접두사 일치를 수행하려면 패턴을 처음에 배치하고 %
을 사용하여 그 뒤에 오는 모든 문자를 일치시킬 수 있습니다. 예를 들어 name
가 "Prod"로 시작하는 모든 제품을 찾으려면.
filter = 'name LIKE "Prod%"'
이렇게 하면 "제품 A", "제품 B" 등과 같이 이름이 "Prod"로 시작하는 모든 제품이 일치합니다.
접미사 일치(끝으로 끝남)
문자열이 지정된 패턴으로 끝나는 접미사 일치의 경우, 패턴의 시작 부분에 %
기호를 배치합니다. 예를 들어 name
이 "XYZ"로 끝나는 모든 제품을 찾으려면.
filter = 'name LIKE "%XYZ"'
이렇게 하면 이름이 "XYZ"로 끝나는 모든 제품(예: "ProductXYZ", "SampleXYZ" 등)이 일치합니다.
접두사 일치(포함)
문자열의 어느 위치에나 패턴이 나타날 수 있는 접두사 일치를 수행하려면 패턴의 시작과 끝 모두에 %
기호를 배치하면 됩니다. 예를 들어 name
에 "Pro"라는 단어가 포함된 모든 제품을 찾습니다.
filter = 'name LIKE "%Pro%"'
이렇게 하면 이름에 "Pro"가 포함된 모든 제품(예: "Product", "ProLine" 또는 "SuperPro")이 일치합니다.
산술 연산자
산술 연산자를 사용하면 숫자 필드와 관련된 계산을 기반으로 조건을 생성할 수 있습니다.
지원되는 산술 연산자.
+
(더하기)-
(빼기)*
(곱셈)/
(나누기)%
(모듈러스)**
(지수)
예 1: 더하기(+
) 사용
total
가격이 base_price
과 tax
의 합계인 엔티티를 찾으려면.
filter = 'total == base_price + tax'
예 2: 빼기 사용 (-
)
quantity
이 50보다 크고 quantity_sold
이 30보다 작은 엔티티를 찾으려면.
filter = 'quantity - quantity_sold > 50'
예 3: 곱하기 사용 (*
)
price
가 100보다 크고 quantity
가 10보다 큰 엔터티를 찾으려면 곱하기.
filter = 'price * quantity > 1000'
예 4: 나누기 사용 (/
)
total_price
를 quantity
로 나눈 값이 50보다 작은 제품을 찾으려면.
filter = 'total_price / quantity < 50'
예 5: 모듈러스 사용 (%
)
id
이 짝수(즉, 2로 나눌 수 있는)인 엔티티를 찾으려면 다음과 같이 하세요.
filter = 'id % 2 == 0'
예 6: 지수 사용(**
)
price
를 2의 거듭 제곱한 값이 1000보다 큰 엔터티를 찾으려면 다음과 같이 하세요.
filter = 'price ** 2 > 1000'
논리 연산자
논리 연산자는 여러 조건을 보다 복잡한 필터 표현식으로 결합하는 데 사용됩니다. 여기에는 AND
, OR
, NOT
등이 포함됩니다.
지원되는 논리 연산자
AND
: 모두 참이어야 하는 여러 조건을 결합합니다.OR
: 하나 이상의 조건이 참이어야 하는 조건을 결합합니다.NOT
: 조건을 무효화합니다.
예 1: AND
사용하여 조건 결합하기
price
가 100보다 크고 stock
가 50보다 큰 모든 제품을 찾습니다.
filter = 'price > 100 AND stock > 50'
예 2: OR
사용하여 조건 결합하기
color
이 "빨간색" 또는 "파란색"인 모든 제품을 찾으려면.
filter = 'color == "red" OR color == "blue"'
예 3: NOT
사용하여 조건 제외하기
color
이 "녹색"이 아닌 모든 제품을 찾으려면.
filter = 'NOT color == "green"'
JSON 및 배열 필드에서 기본 연산자 사용에 대한 팁
Milvus의 기본 연산자는 다목적이며 스칼라 필드에 적용할 수 있지만, JSON 및 ARRAY 필드의 키와 인덱스에도 효과적으로 사용할 수 있습니다.
예를 들어 price
, model
, tags
과 같은 여러 개의 키가 포함된 product
필드가 있는 경우 항상 키를 직접 참조하세요.
filter = 'product["price"] > 1000'
기록된 온도 배열에서 첫 번째 온도가 특정 값을 초과하는 기록을 찾으려면 다음을 사용합니다.
filter = 'history_temperatures[0] > 30'
결론
Milvus는 데이터를 유연하게 필터링하고 쿼리할 수 있는 다양한 기본 연산자를 제공합니다. 비교, 범위, 산술 및 논리 연산자를 결합하여 강력한 필터 표현식을 만들어 검색 결과의 범위를 좁히고 필요한 데이터를 효율적으로 검색할 수 있습니다.