9.13. 윈 토토 검색 기능 및 연산자

표 9.42, 표 9.43그리고표 9.44전체 윈 토토 검색을 위해 제공되는 기능과 연산자를 요약합니다. 참조롤 토토 : 문서 : 15 : 12 장. 전문 검색자세한 설명은포스트그레SQL의 윈 토토 검색 기능입니다.

표 9.42. 윈 토토 검색 연산자

운영자

설명

ts벡터 @@ tsquery부울

tsquery @@ ts벡터부울

그렇습니다ts벡터일치tsquery? (인수는 어느 순서로든 주어질 수 있습니다.)

to_tsVector('살찐 고양이가 쥐를 먹었습니다') @@ to_tsquery('고양이 & 쥐')t

윈 토토 @@ tsquery부울

암시적 호출 후 윈 토토 문자열을 수행합니다.to_ts벡터(), 일치tsquery?

'살찐 고양이가 쥐를 먹었습니다' @@ to_tsquery('고양이 & 쥐')t

ts벡터 @@@ tsquery부울

tsquery @@@ ts벡터부울

이것은 더 이상 사용되지 않는 동의어입니다.@@.

to_tsVector('살찐 고양이가 쥐를 먹었습니다') @@@ to_tsquery('고양이와 쥐')t

ts벡터 || ts벡터ts벡터

두 개를 연결합니다ts벡터s. 두 입력 모두 어휘소 위치를 포함하는 경우 두 번째 입력의 위치는 그에 따라 조정됩니다.

'a:1 b:2'::ts벡터 || 'c:1 d:2 b:3'::ts벡터'a':1 'b':2,5 'c':3 'd':4

tsquery && tsquerytsquery

AND 2tsquerys를 함께 사용하여 두 입력 쿼리와 일치하는 문서와 일치하는 쿼리를 생성합니다.

'지방 | 쥐'::tsquery && '고양이'::tsquery( '뚱뚱' | '쥐' ) & '고양이'

tsquery || tsquerytsquery

OR 2tsquerys를 함께 사용하여 입력 쿼리와 일치하는 문서와 일치하는 쿼리를 생성합니다.

'지방 | 쥐'::tsquery || '고양이'::tsquery'지방' | '쥐' | '고양이'

!! tsquerytsquery

a를 부정함tsquery, 입력 쿼리와 일치하지 않는 문서를 일치시키는 쿼리를 생성합니다.

!! '고양이'::tsquery!'고양이'

tsquery <- tsquerytsquery

두 개의 입력 쿼리가 연속적인 어휘에서 일치하면 일치하는 구문 쿼리를 구성합니다.

to_tsquery('지방') <- to_tsquery('쥐')'뚱뚱' <- '쥐'

tsquery @ tsquery부울

먼저 수행tsquery두 번째를 포함합니까? (이것은 결합 연산자를 무시하고 한 쿼리에 나타나는 모든 어휘가 다른 쿼리에 나타나는지 여부만 고려합니다.)

'고양이'::tsquery @ '고양이와 쥐'::tsqueryf

tsquery <@ tsquery부울

먼저tsquery두 번째에 포함되어 있나요? (이것은 결합 연산자를 무시하고 한 쿼리에 나타나는 모든 어휘가 다른 쿼리에 나타나는지 여부만 고려합니다.)

'고양이'::tsquery <@ '고양이와 쥐'::tsqueryt

'고양이'::tsquery <@ '!cat & 쥐'::tsqueryt


이러한 특수 연산자 외에도 다음과 같은 일반적인 비교 연산자가 있습니다.표 9.1유형에 사용 가능ts벡터그리고tsquery. 이는 윈 토토 검색에는 그다지 유용하지 않지만 예를 들어 이러한 유형의 열에 고유 인덱스를 구축할 수 있습니다.

표 9.43. 윈 토토 검색 기능

기능

설명

array_to_tsVector ( 윈 토토[] ) → ts벡터

윈 토토 문자열 배열을 a로 변환합니다.ts벡터. 주어진 문자열은 추가 처리 없이 있는 그대로 어휘소로 사용됩니다. 배열 요소는 빈 문자열이 아니어야 합니다. 또는NULL.

array_to_tsVector('fat,cat,rat'::text[])'고양이' '뚱뚱한' '쥐'

get_current_ts_config ( ) → regconfig

현재 기본 윈 토토 검색 구성의 OID를 반환합니다(다음에 의해 설정됨).default_text_search_config).

get_current_ts_config()영어

길이 ( ts벡터 ) → 정수

어휘소 수를 반환합니다.ts벡터.

le윈 토토th('fat:2,4 cat:3 쥐:5A'::tsVector)3

numnode ( tsquery ) → 정수

어휘소와 연산자의 수를 반환합니다.tsquery.

numnode('(지방 및 쥐) | 고양이'::tsquery)5

plainto_tsquery ( [ 구성 regconfig, ] 질의 윈 토토 ) → tsquery

윈 토토를 a로 변환합니다.tsquery, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 문자열의 모든 구두점은 무시됩니다(쿼리 연산자를 결정하지 않음). 결과 쿼리는 윈 토토에 불용어가 아닌 모든 단어가 포함된 문서와 일치합니다.

plainto_tsquery('english', 'The Fat Rats')'지방' & '쥐'

phraseto_tsquery ( [ 구성 regconfig, ] 질의 윈 토토 ) → tsquery

윈 토토를 a로 변환tsquery, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 문자열의 모든 구두점은 무시됩니다(쿼리 연산자를 결정하지 않음). 결과 쿼리는 윈 토토에 불용어가 아닌 단어가 모두 포함된 구문과 일치합니다.

phraseto_tsquery('english', 'The Fat Rats')'뚱뚱한' <- '쥐'

phraseto_tsquery('english', '고양이와 쥐')'고양이' <2 '쥐'

websearch_to_tsquery ( [ 구성 regconfig, ] 질의 윈 토토 ) → tsquery

윈 토토를 a로 변환합니다.tsquery, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 인용된 단어 시퀀스는 구문 테스트로 변환됩니다. 단어또는는 OR 연산자를 생성하는 것으로 이해되고 대시는 NOT 연산자를 생성합니다. 다른 구두점은 무시됩니다. 이는 일부 일반적인 웹 검색 도구의 동작과 유사합니다.

websearch_to_tsquery('english', ''뚱뚱한 쥐' 또는 고양이 개')'뚱뚱한' <- '쥐' | '고양이' & '개'

쿼리트리 ( tsquery ) → 윈 토토

a의 색인 생성 가능한 부분에 대한 표현을 생성합니다.tsquery. 비어 있거나 그냥 결과입니다.T색인을 생성할 수 없는 쿼리를 나타냅니다.

querytree('foo & !bar'::tsquery)'푸'

설정중량 ( 벡터 ts벡터, 무게 "문자" ) → ts벡터

지정된 할당무게각 요소에벡터.

setweight('fat:2,4 cat:3 쥐:5B'::tsVector, 'A')'고양이':3A '뚱뚱':2A,4A '쥐':5A

설정중량 ( 벡터 ts벡터, 무게 "문자", 어휘 윈 토토[] ) → ts벡터

지정된 할당무게의 요소에벡터다음에 나열되어 있음어휘. 의 문자열어휘추가 처리 없이 어휘소를 있는 그대로 사용합니다. 어떤 어휘소와도 일치하지 않는 문자열벡터무시됩니다.

setweight('fat:2,4 cat:3 쥐:5,6B'::tsVector, 'A', 'cat,rat')'고양이':3A '뚱뚱':2,4 '쥐':5A,6A

스트립 ( ts벡터 ) → ts벡터

에서 위치와 가중치를 제거합니다.ts벡터.

strip('fat:2,4 cat:3 쥐:5A'::tsVector)'고양이' '뚱뚱한' '쥐'

to_tsquery ( [ 구성 regconfig, ] 질의 윈 토토 ) → tsquery

윈 토토를 a로 변환tsquery, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 단어는 유효한 단어로 결합되어야 합니다.tsquery연산자.

to_tsquery('english', 'The & Fat & Rats')'지방' & '쥐'

to_tsVector ( [ 구성 regconfig, ] 문서 윈 토토 ) → ts벡터

윈 토토를 a로 변환ts벡터, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 결과에는 위치 정보가 포함됩니다.

to_tsVector('english', '살찐 쥐')'지방':2 '쥐':3

to_tsVector ( [ 구성 regconfig, ] 문서 json ) → ts벡터

to_tsVector ( [ 구성 regconfig, ] 문서 jsonb ) → ts벡터

JSON 문서의 각 문자열 값을 다음으로 변환합니다.ts벡터, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 그런 다음 결과를 문서 순서대로 연결하여 출력을 생성합니다. 위치 정보는 각 문자열 값 쌍 사이에 하나의 불용어가 존재하는 것처럼 생성됩니다. (조심하세요)문서 순서JSON 객체의 필드는 입력이 다음과 같은 경우 구현에 따라 다릅니다.jsonb; 예제의 차이점을 살펴보세요.)

to_tsVector('english', '"aa": "살찐 쥐", "b": "dog"'::json)'개':5 '뚱뚱':2 '쥐':3

to_tsVector('english', '"aa": "살찐 쥐", "b": "dog"'::jsonb)'개':1 '뚱뚱':4 '쥐':5

json_to_tsVector ( [ 구성 regconfig, ] 문서 json, 필터 jsonb ) → ts벡터

jsonb_to_tsVector ( [ 구성 regconfig, ] 문서 jsonb, 필터 jsonb ) → ts벡터

JSON 문서에서 요청한 각 항목을 선택합니다.필터그리고 각각을 a로 변환합니다.ts벡터, 지정된 구성 또는 기본 구성에 따라 단어를 정규화합니다. 그런 다음 결과를 문서 순서대로 연결하여 출력을 생성합니다. 선택한 항목의 각 쌍 사이에 불용어가 하나씩 존재하는 것처럼 위치 정보가 생성됩니다. (조심하세요)문서 순서JSON 객체의 필드는 입력이 다음과 같은 경우 구현에 따라 다릅니다.jsonb.) 그필터반드시jsonb다음 키워드가 0개 이상 포함된 배열:"문자열"(모든 문자열 값을 포함하려면),"숫자"(모든 숫자 값을 포함하려면),"부울"(모든 부울 값을 포함하려면),"열쇠"(모든 키를 포함하려면) 또는"모두"(위의 모든 내용을 포함). 특별한 경우로,필터이러한 키워드 중 하나인 간단한 JSON 값일 수도 있습니다.

json_to_tsVector('english', '"a": "The Fat Rats", "b": 123'::json, '["string", "numeric"]')'123':5 '뚱뚱':2 '쥐':3

json_to_tsVector('english', '"cat": "The Fat Rats", "dog": 123'::json, '"all"')'123':9 '고양이':1 '개':7 '뚱뚱':4 '쥐':5

ts_delete ( 벡터 ts벡터, 어휘 윈 토토 ) → ts벡터

주어진 항목을 모두 제거어법에서벡터.어법문자열은 추가 처리 없이 있는 그대로 어휘소로 처리됩니다.

ts_delete('fat:2,4 cat:3 쥐:5A'::tsVector, 'fat')'고양이':3 '쥐':5A

ts_delete ( 벡터 ts벡터, 어휘 윈 토토[] ) → ts벡터

다음에서 모든 어휘 항목을 제거합니다.어휘에서벡터. 의 문자열어휘추가 처리 없이 어휘소를 있는 그대로 사용합니다. 어떤 어휘소와도 일치하지 않는 문자열벡터무시됩니다.

ts_delete('fat:2,4 cat:3 쥐:5A'::tsVector, ARRAY['fat','rat'])'고양이':3

ts_filter ( 벡터 ts벡터, 가중치 "문자"[] ) → ts벡터

주어진 요소만 선택합니다.가중치에서벡터.

ts_filter('fat:2,4 cat:3b,7c rat:5A'::tsVector, 'a,b')'고양이':3B '쥐':5A

ts_headline ( [ 구성 regconfig, ] 문서 윈 토토, 질의 tsquery [, 옵션 윈 토토 ] ) → 윈 토토

다음에 대한 일치 항목을 축약된 형식으로 표시합니다.질의에서문서, 이는 a가 아닌 원시 윈 토토여야 합니다.ts벡터. 문서의 단어는 쿼리와 일치하기 전에 지정된 구성 또는 기본 구성에 따라 정규화됩니다. 이 기능의 사용은에서 논의됩니다.섹션 12.3.4, 사용 가능한 항목도 설명합니다.옵션.

ts_headline('뚱뚱한 고양이가 쥐를 먹었습니다.', '고양이')뚱뚱한 <b고양이</b가 쥐를 먹었습니다.

ts_headline ( [ 구성 regconfig, ] 문서 json, 질의 tsquery [, 옵션 윈 토토 ] ) → 윈 토토

ts_headline ( [ 구성 regconfig, ] 문서 jsonb, 질의 tsquery [, 옵션 윈 토토 ] ) → 윈 토토

다음에 대한 일치 항목을 축약된 형태로 표시합니다.질의JSON 내의 문자열 값에 발생함문서. 참조섹션 12.3.4자세한 내용은.

ts_headline('"cat":"비가 내리는 고양이와 개"'::jsonb, 'cat')"cat": "비가 내리는 <b고양이와 개</b"

ts_rank ( [ 가중치 진짜[], ] 벡터 ts벡터, 질의 tsquery [, 정규화 정수 ] ) → 실제

얼마나 잘했는지 보여주는 점수를 계산합니다.벡터일치질의. 참조섹션 12.3.3자세한 내용은.

ts_rank(to_tsVector('비 내리는 고양이와 개'), '고양이')0.06079271

ts_rank_cd ( [ 가중치 진짜[], ] 벡터 ts벡터, 질의 tsquery [, 정규화 정수 ] ) → 실제

얼마나 잘했는지 보여주는 점수를 계산합니다.벡터일치함질의, 커버 밀도 알고리즘 사용. 참조섹션 12.3.3자세한 내용은.

ts_rank_cd(to_tsVector('비 내리는 고양이와 개'), '고양이')0.1

ts_rewrite ( 질의 tsquery, 대상 tsquery, 대체 tsquery ) → tsquery

다음 항목을 대체합니다.대상대체내부질의. 참조섹션 12.4.2.1자세한 내용은.

ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery)'b' & ( 'foo' | 'bar' )

ts_rewrite ( 질의 tsquery, 선택 윈 토토 ) → tsquery

의 일부를 대체합니다.질의a를 실행하여 얻은 대상 및 대체물에 따라선택명령. 참조섹션 12.4.2.1자세한 내용은.

SELECT ts_rewrite('a & b'::tsquery, 'SELECT t,s FROM 별칭')'b' & ( 'foo' | 'bar' )

tsquery_phrase ( 쿼리1 tsquery, 쿼리2 tsquery ) → tsquery

일치하는 항목을 검색하는 구문 쿼리를 구성합니다.쿼리1그리고쿼리2연속 어휘에서 (동일<-연산자).

tsquery_phrase(to_tsquery('fat'), to_tsquery('cat'))'뚱뚱한' <- '고양이'

tsquery_phrase ( 쿼리1 tsquery, 쿼리2 tsquery, 거리 정수 ) → tsquery

일치하는 구문을 검색하는 구문 쿼리를 구성합니다.쿼리1그리고쿼리2정확히 발생함거리어휘가 분리되어 있습니다.

tsquery_phrase(to_tsquery('fat'), to_tsquery('cat'), 10)'뚱뚱한' <10 '고양이'

tsVector_to_array ( ts벡터 ) → 윈 토토[]

a를 변환합니다ts벡터어휘 배열로.

tsVector_to_array('fat:2,4 cat:3 쥐:5A'::tsVector)고양이,뚱뚱,쥐

unnest ( ts벡터 ) → 레코드 세트 ( 어휘 윈 토토, 위치 작은 정수[], 가중치 윈 토토 )

확장 ats벡터어휘당 하나씩 행 집합으로.

unnest('cat:3 fat:2,4rat:5A'::tsVector)에서 * 선택

어휘 | 직위 | 무게
--------+------------+---------
 고양이 | 3 | 디
 지방 | 2,4 | 디,디
 쥐 | 5 | A

참고

옵션을 허용하는 모든 윈 토토 검색 기능regconfig인수는 다음에 의해 지정된 구성을 사용합니다.default_text_search_config해당 인수가 생략된 경우.

함수표 9.44은 일반적으로 일상적인 윈 토토 검색 작업에 사용되지 않기 때문에 별도로 나열됩니다. 주로 새로운 윈 토토 검색 구성을 개발하고 디버깅하는 데 도움이 됩니다.

표 9.44. 윈 토토 검색 디버깅 기능

기능

설명

ts_debug ( [ 구성 regconfig, ] 문서 윈 토토 ) → 레코드 세트 ( 별칭 윈 토토, 설명 윈 토토, 토큰 윈 토토, 사전 regdictionary[], 사전 regdictionary, 어휘 윈 토토[] )

에서 토큰을 추출하고 정규화합니다.문서지정된 또는 기본 윈 토토 검색 구성에 따라 각 토큰이 처리된 방법에 대한 정보를 반환합니다. 참조섹션 12.8.1자세한 내용은.

ts_debug('english', '가장 밝은 초신성')(asciiword,"Word, 모든 ASCII",The,e윈 토토lish_stem,e윈 토토lish_stem,) ...

ts_lexize ( dict regdictionary, 토큰 윈 토토 ) → 윈 토토[]

입력 토큰이 사전에 알려진 경우 대체 어휘 배열을 반환하고, 토큰이 사전에 알려져 있지만 중지 단어인 경우 빈 배열을 반환하며, 알려진 단어가 아닌 경우 NULL을 반환합니다. 참조섹션 12.8.3자세한 내용은.

ts_lexize('english_stem', '별')

ts_parse ( 파서_이름 윈 토토, 문서 윈 토토 ) → 레코드 세트 ( 토키드 정수, 토큰 윈 토토 )

에서 토큰을 추출합니다.문서명명된 파서를 사용합니다. 참조섹션 12.8.2자세한 내용은.

ts_parse('기본값', 'foo - 바')(1,foo) ...

ts_parse ( parser_oid oid, 문서 윈 토토 ) → 레코드 세트 ( 토키드 정수, 토큰 윈 토토 )

에서 토큰을 추출합니다문서OID로 지정된 파서를 사용합니다. 참조섹션 12.8.2자세한 내용은.

ts_parse(3722, 'foo - bar')(1,foo) ...

ts_token_type ( 파서_이름 윈 토토 ) → 레코드 세트 ( 토키드 정수, 별칭 윈 토토, 설명 윈 토토 )

이름이 지정된 파서가 인식할 수 있는 각 토큰 유형을 설명하는 테이블을 반환합니다. 참조섹션 12.8.2자세한 내용은.

ts_token_type('기본값')(1,asciiword,"단어, 모두 ASCII") ...

ts_token_type ( parser_oid oid ) → 레코드 세트 ( 토키드 정수, 별칭 윈 토토, 설명 윈 토토 )

OID로 지정된 파서가 인식할 수 있는 각 토큰 유형을 설명하는 테이블을 반환합니다. 참조섹션 12.8.2자세한 내용은.

ts_token_type(3722)(1,asciiword,"단어, 모두 ASCII") ...

ts_stat ( sqlquery 윈 토토 [, 가중치 윈 토토 ] ) → 레코드 집합 ( 단어 윈 토토, ndoc 정수, 넨트리 정수 )

다음을 실행합니다sqlquery, 단일을 반환해야 함ts벡터열이며, 데이터에 포함된 각 개별 어휘소에 대한 통계를 반환합니다. 참조섹션 12.4.4자세한 내용은.

ts_stat('아팟에서 벡터 선택')(foo,10,15) ...


수정 사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.