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

8.11. 텍스트 배트맨 토토 유형

PostgreSQL두 가지 데이터를 제공합니다 전체 텍스트 검색을 지원하도록 설계된 유형은 자연 언어 모음을 통한 검색 활동문서가장 좋은 것을 찾으십시오 일치 a쿼리. 그만큼TSVECTOR유형은 양식의 문서를 나타냅니다 텍스트 검색에 최적화; 그만큼tsquery타입 마찬가지로 텍스트 쿼리를 나타냅니다.12 장자세한 설명을 제공합니다 이 시설 중PostgreSQL : 문서 : 9.2 : 텍토토 사이트 순위 검색 기능 및 연산자관련 기능 및 연산자가 요약되어 있습니다.

8.11.1. tsvector

atsvector값은 정렬 된 목록입니다 별개의lexemes정규화병합 같은 단어의 다른 변형 (참조12 장자세한 내용). 정렬 및 중복 제거는 입력 중에 자동으로 수행됩니다 이 예에 표시 :

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

whitespace 또는 구두점을 포함하는 Lexemes를 나타내려면, 인용문으로 둘러싸여 :

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

(우리는이 예제에서 달러에 따른 문자 그럴을 사용합니다 따옴표를 두 배로 늘려야하는 혼란을 피하기위한 다음 사람 리터럴 내의 표시.) 내장 된 따옴표와 백 슬래시 두 배가되어야합니다 :

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

선택적으로, 정수위치can Lexemes에 첨부해야합니다 :

선택 'A : 1 지방 : 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는 더 이상 레이블을 지정할 수 있습니다weight, 가능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

다시 참조롤 토토 : 문서 : 9.2 : 전문 검색더 많은 것 세부 사항.

8.11.2. tsquery

atsquery가치 저장 Lexemes 배트맨 토토되어 부울을 존중하는 것을 결합합니다. 연산자&(및),|(또는) 및!(아님). 괄호는 그룹화를 시행하는 데 사용될 수 있습니다 운영자 :

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

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

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

괄호가 없으면!(아님)는 가장 단단히 묶고&(및) ||(또는).

선택적으로, lexemes intsquerycan 하나 이상의 무게 문자로 표시되어 제한됩니다. 그들 만 일치하는tsvectorlexemes with 일치하는 무게 :

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

또한, lexemes intsquery할 수 있습니다 라벨링*접두사를 지정합니다 어울리는:

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

이 쿼리는 a의 모든 단어와 일치합니다.tsvector"슈퍼". 접두사가 먼저 처리됩니다 텍스트 배트맨 토토 구성 으로이 비교를 의미합니다 Returns true :

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

때문에PostgresPostgr:

select to_tsquery ( 'postgres :*');
 to_tsquery 
------------
 'postgr':*
(1 행)

그 다음 일치대학원.

Lexemes에 대한 인용 규칙은 설명과 동일합니다 이전에는 렉시스를 위해TSVECTOR; 그리고, 와 마찬가지로tsvector, 필요한 모든 단어의 정규화는로 변환하기 전에 수행해야합니다.TSQUERY타입. 그만큼to_tsquery함수는 편리합니다 그러한 정규화 수행 :

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