이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 8.11. 텍스트 윈 토토 베이 유형버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

8.11. 텍스트 윈 토토 유형#

PostgreSQL전체 텍스트 윈 토토을 지원하도록 설계된 두 가지 데이터 유형을 제공합니다. 이는 자연사 모음을 통해 윈 토토하는 활동입니다문서가장 잘 어울리는 것을 찾으려면쿼리. 그만큼TSVECTOR유형은 텍스트 검색에 최적화 된 양식의 문서를 나타냅니다. 그만큼tsquery텍스트 쿼리를 비슷하게 나타냅니다.PostgreSQL : 문서 : 18 : 12 장. 전체 텍스트 범퍼카 토토이 시설에 대한 자세한 설명을 제공하고PostgreSQL : 문서 : 18 : 9.13. 스포츠 토토 결과 검색 기능 및 연산자관련 기능 및 연산자가 요약되어 있습니다.

8.11.1. tsvector #

aTSVECTOR값은 차별화 된 목록입니다lexemes, 그 단어는정규화같은 단어의 다른 변형을 병합하려면 (참조PostgreSQL : 문서 : 18 : 12 장. 전체 텍스트 범퍼카 토토자세한 내용). 정렬 및 중복 제거는 입력 중에 자동으로 수행됩니다.

'뚱뚱한 고양이가 매트에 앉아 뚱뚱한 쥐를 먹었다':: tsvector;
                      tsvector
-----------------------------------------------------------
 'a' '및' 'ate' 'cat' 'fat' 'mat' 'on' '쥐' 'sat'

공백 또는 문장 부호를 포함하는 렉서스를 나타내려면 다음과 같은 인용문으로 둘러싸여 있습니다.

선택 $$ Lexeme '' ''공백이 포함되어 $$ :: tsvector;
                 tsvector
---------------------------------------------------
 `` ''lexeme '' '공간'을 포함합니다.

12370_12568

선택 $$ lexeme 'joe' '' '는 인용문 $$ :: tsvector;
                    tsvector
------------------------------------------------
 'Joe'의 ''a ''는``lexeme ''인용 '' '을 포함합니다.

선택적으로, 정수위치lexemes에 첨부 될 수 있습니다 :

선택 'A : 1 FAT : 2 CAT : 3 SAT : 4 ON : 5 A : 6 MAT : 7 및 : 8 ATE : 9 A : 10 FAT : 11 RAT : 12':: TSVECTOR;
                                  tsvector
---------------------------------------------------------------------------------
 'a': 1,6,10 '및': 8 'ate': 9 '고양이': 3 '지방': 2,11 'mat': 7 'on': 5 '쥐': 12 'sat': 4

위치는 일반적으로 문서의 소스 단어의 위치를 나타냅니다. 위치 정보를 사용할 수 있습니다근접 순위. 위치 값은 1에서 16383까지의 범위입니다. 더 큰 숫자는 16383으로 조용히 설정됩니다. 동일한 lexeme의 중복 위치는 폐기됩니다.

위치가있는 lexemes는 a로 더 레이블을 지정할 수 있습니다.웨이트a, B, C또는d. d기본값이므로 출력에 표시되지 않습니다.

선택 'A : 1A FAT : 2B, 4C CAT : 5D':: TSVECTOR;
          tsvector
----------------------------
 'a': 1a 'cat': 5 'fat': 2b, 4c

무게는 일반적으로 제목 단어를 신체 단어와 다르게 표시하여 문서 구조를 반영하는 데 사용됩니다. 텍스트 검색 순위 기능은 다른 무게 마커에 다른 우선 순위를 할당 할 수 있습니다.

TSVECTOR유형 자체는 단어 정규화를 수행하지 않습니다. 그것은 그것이 주어진 단어가 응용 프로그램에 적절하게 정규화되었다고 가정합니다. 예를 들어,

선택한 'The Fat Rats':: tsvector;
      tsvector
-------------------
 '지방' '쥐' '

대부분의 영어 텍스트 윈 토토 응용 프로그램의 경우 위의 단어는 정상화되지 않은 것으로 간주되지만TSVECTOR신경 쓰지 않습니다. 원시 문서 텍스트는 일반적으로 통과해야합니다to_tsvector윈 토토에 적절하게 단어를 정상화하려면 :

select to_tsvector ( '영어', '뚱뚱한 쥐');
   to_tsvector
------------------
 '지방': 2 '쥐': 3

다시 참조PostgreSQL : 문서 : 18 : 12 장. 전체 텍스트 범퍼카 토토자세한 내용은

8.11.2. tsquery #

atsqueryvalue value stores를 윈 토토 할 렉시 메스, 부울 연산자를 사용하여 결합 할 수 있습니다&(및),|(또는) 및!(NOT) 및 문구 윈 토토 연산자<--(뒤에). 변형도 있습니다<nn검색중인 두 lexemes 사이의 거리를 지정하는 정수 상수입니다.<--<1.

괄호를 사용하여 이러한 연산자의 그룹화를 시행 할 수 있습니다. 괄호가없는 경우!(아님)는 가장 단단히 묶습니다.<--(뒤 따르는) 다음에 가장 단단히&(및), with|(또는) 최소 단단히 결합합니다.

여기 몇 가지 예가 있습니다.

선택 'Fat & Rat':: tsquery;
    tsquery
-----------------
 '지방'& '쥐'

'fat & (rat | cat)':: tsquery;
          tsquery
-------------------------------
 'fat'& ( 'rat'| 'cat')

'Fat & Rat &! 고양이 ':: tsquery;
        tsquery
-------------------------
 'fat'& 'rat'&! 'cat'

선택적으로, lexemes intsquery하나 이상의 무게 문자로 레이블을 붙일 수 있으며, 이로 인해 일치하도록 제한됩니다TSVECTOR그 중 하나가있는 lexemes :

선택 'Fat : Ab & Cat':: tsquery;
    tsquery
-----------------
 '지방': AB & 'CAT'

또한, lexemes intsquery|*접두사 매칭을 지정하려면 :

선택 'Super :*':: tsquery;
  tsquery
----------
 '감독자':*

이 쿼리는 a의 모든 단어와 일치합니다.TSVECTORSuper.

Lexemes에 대한 인용 규칙은 lexemes에서 이전에 설명한 것과 동일합니다TSVECTOR; 그리고와 마찬가지로TSVECTORTSQUERY타입. 그만큼to_tsquery함수는 그러한 정규화를 수행하기에 편리합니다.

select to_tsquery ( 'fat : ab & cats');
    to_tsquery
-----------------
 '지방': AB & 'CAT'

참고to_tsquery다른 단어와 같은 방식으로 접두사를 처리합니다.

select to_tsvector ( 'postgraduate') @@ to_tsquery ( 'postgres :*');
 ?열?
---------
 티

왜냐하면PostgresPostgr:

select to_tsvector ( 'postgraduate'), to_tsquery ( 'postgres :*');
  to_tsvector | to_tsquery
---------------+------------
 'post gradu': 1 | 'postgr':*

줄기 형태와 일치하는대학원.