전체 텍스트 검색 사용하기¶
검색 함수를 사용하여 하나 이상의 테이블(VARIANT, OBJECT, ARRAY 열의 필드 포함)에서 지정된 열의 문자 데이터(텍스트) 및 IPv4 주소를 찾을 수 있습니다. 이 함수는 주어진 검색어 목록을 기반으로 지정된 열이나 문자열의 텍스트를 검색합니다. 이 함수는 검색 의미 체계에 따라 텍스트가 지정된 검색어와 일치하는 경우 TRUE 를 반환합니다.
대부분의 경우 SEARCH 함수를 SELECT 목록이나 SELECT 구문의 WHERE 절에 지정하여 호출합니다. 함수를 WHERE 절 필터로 사용하는 경우 쿼리는 함수가 TRUE를 반환할 때 행을 반환합니다.
SEARCH 함수는 별도의 설정이나 추가 권한이 필요하지 않습니다. 열의 데이터에 액세스할 수 있는 권한이 있는 역할을 사용하는 경우 SEARCH 함수를 사용하여 해당 데이터를 검색할 수 있습니다.
다음 섹션에서는 SEARCH 함수에 대한 자세한 정보와 이 함수를 사용할 때 쿼리 성능을 최적화하는 방법에 대해 설명합니다.
SEARCH 함수 사용하기¶
SEARCH 함수 는 VARIANT, OBJECT 및 ARRAY 열의 필드를 포함하여 하나 이상의 테이블에서 지정된 열의 문자 데이터(텍스트)를 검색합니다.
SEARCH 함수를 사용하면 텍스트 분석기가 텍스트를 단어나 숫자와 같은 텍스트의 개별 단위인 토큰 으로 분해합니다. 지정하지 않으면 기본 분석기가 적용됩니다. 분석기는 검색어와 데이터 모두에서 토큰을 추출합니다.
검색어에서 추출된 토큰이 검색 의미 체계에 따라 지정된 열 또는 필드에서 추출된 토큰과 일치하면 함수는 TRUE 를 반환합니다. SEARCH_MODE 함수 인자는 검색 의미로 'OR'
(분리형) 또는 'AND'
(연결형) 중 하나를 지정합니다.
'OR'
(기본값)을 지정하면 검색 중인 열 또는 필드에서 추출된 토큰 중 하나라도 검색 문자열에서 추출된 토큰 중 하나 와 일치하면 일치 항목이 있는 것입니다. 예를 들어search_string
값이'blue red green'
인 경우 이 함수는 검색 중인 열 또는 필드에blue
ORred
ORgreen
이 포함된 행에 대해TRUE을 반환합니다.'AND'
를 지정하면 검색 중인 열 또는 필드 중 1개 이상의 에서 추출한 토큰이 검색 문자열에서 추출한 토큰의 모두와 일치하는 경우 일치하는 토큰이 있습니다. 일치하는 토큰은 모두 1개의 열 또는 필드에 있어야 하며 여러 열 또는 필드에 분산되어서는 안 됩니다. 예를 들어,search_string
값이'blue red green'
인 경우 이 함수는 검색 중인 열 또는 필드 중 1개 이상에blue
ANDred
ANDgreen
이 포함된 행에 대해 TRUE 를 반환합니다.
다음 예제는 기본값 SEARCH_MODE ('OR'
)과 기본 분석기를 사용하여 텍스트 leopard
에서 문자열 snow leopard
를 검색하는 예제입니다.
SELECT SEARCH('leopard', 'snow leopard');
+-----------------------------------+
| SEARCH('LEOPARD', 'SNOW LEOPARD') |
|-----------------------------------|
| True |
+-----------------------------------+
다음 예제에서는 lion
텍스트에서 snow leopard
문자열을 찾습니다.
SELECT SEARCH('lion', 'snow leopard');
+--------------------------------+
| SEARCH('LION', 'SNOW LEOPARD') |
|--------------------------------|
| False |
+--------------------------------+
다음 예제는 leopard
텍스트에서 snow leopard
문자열을 검색하고 SEARCH_MODE 인자에 'AND'
를 지정합니다.
SELECT SEARCH('leopard', 'snow leopard', search_mode => 'AND');
+---------------------------------------------------------+
| SEARCH('LEOPARD', 'SNOW LEOPARD', SEARCH_MODE => 'AND') |
|---------------------------------------------------------|
| False |
+---------------------------------------------------------+
이 함수와 추가 예제에 대한 자세한 내용은 SEARCH 섹션을 참조하십시오.
SEARCH_IP 함수 사용하기¶
SEARCH_IP 함수 는 하나 이상의 테이블에서 지정된 문자 문자열 열(VARIANT, OBJECT, ARRAY 열의 필드 포함)의 유효한 IPv4 주소를 검색합니다. 검색은 사용자가 지정한 단일 IP 주소를 기반으로 합니다. 이 IP 주소가 지정된 열이나 필드의 IP 주소와 정확히 일치하는 경우 함수는 TRUE를 반환합니다.
다음 예제에서는 192.0.2.146
텍스트에서 IP 주소 10.10.10.1
을 찾습니다.
SELECT SEARCH_IP('192.0.2.146','10.10.10.1');
+---------------------------------------+
| SEARCH_IP('192.0.2.146','10.10.10.1') |
|---------------------------------------|
| False |
+---------------------------------------+
이 함수와 추가 예제에 대한 자세한 내용은 SEARCH_IP 섹션을 참조하십시오.
SEARCH 함수를 사용하는 쿼리 최적화하기¶
이 함수를 사용하는 쿼리의 성능을 개선하려면 선택적으로 테이블의 특정 열 또는 열 집합에 대해 FULL_TEXT 검색 최적화를 활성화 할 수 있습니다. 검색 최적화를 활성화하면 새로운 검색 액세스 경로 가 구축되고 유지됩니다.