포스트그레SQL두 개의 데이터를 제공합니다 전체 텍스트 검색을 지원하도록 설계된 유형입니다. 자연어 모음을 검색하는 활동문서가장 적합한 것을 찾으려면 일치 a질의.ts벡터type은 적합한 형식의 문서를 나타냅니다. 텍스트 검색의 경우tsquery유형 마찬가지로 쿼리를 나타냅니다.토토 사이트 추천 : 문서 : 8.3 : 전문 검색이 시설에 대한 자세한 설명을 제공합니다.PostgreSQL : 문서 : 8.3 : 텍스포츠 토토 검색 기능 및 연산자요약합니다 관련 함수 및 연산자.
A ts벡터값은 정렬된 목록입니다. 별개의어휘는 다음과 같은 단어입니다. 이미정규화다르게 만들다 같은 단어의 변형은 비슷해 보입니다(참조12장자세한 내용). 정렬 및 중복 제거는 입력 중에 자동으로 수행됩니다. 이 예에 표시되어 있습니다:
SELECT '뚱뚱한 고양이가 매트 위에 앉아 살찐 쥐를 먹었습니다'::tsVector;
                      ts벡터
---------------------------------------
 'a' 'on' '그리고' 'ate' 'cat' 'fat' 'mat' 'rat' 'sat'
    (예에서 볼 수 있듯이 먼저 길이순으로 정렬되고 그런 다음 알파벳순으로 표시되지만 세부 사항은 거의 중요하지 않습니다.) 공백이나 구두점을 포함하는 어휘를 나타냅니다. 따옴표로 묶으세요.
SELECT $$' ' 어휘에는 공백$$::tsVector가 포함되어 있습니다.
                 ts벡터                  
------------------------------
 'the' ' ' '어휘소' '공백' '포함'
    (이 예에서는 달러로 묶인 문자열 리터럴을 사용하며 다음은 두 배로 계산하여 혼란스러운 문제를 피하기 위해 리터럴 내의 따옴표.) 포함된 따옴표 및 백슬래시는 두 배가 되어야 합니다.
SELECT $$'Joe''라는 어휘에는 인용문이 포함되어 있습니다$$::tsVector;
                    ts벡터                    
------------------------------------------------
 'a' 'the' 'Joe''s' 'quote' 'lexeme' 'contains'
    선택적으로 정수위치할 수 있다 일부 또는 모든 어휘에 첨부되어야 합니다.
SELECT 'a:1 fat:2 cat:3 sat:4 on:5 a:6 mat:7 그리고:8 ate:9 a:10 fat:11 rat:12'::tsVector;
                                  ts벡터
------------------------------------------------------------------
 'a':1,6,10 'on':5 'and':8 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4
    위치는 일반적으로 소스 단어의 위치를 나타냅니다. 문서. 위치 정보는 다음 용도로 사용될 수 있습니다.근접 순위. 위치 값의 범위는 다양할 수 있습니다. 1부터 16383까지; 더 큰 숫자는 자동으로 16383으로 고정됩니다. 동일한 어휘에 대한 중복 위치는 삭제됩니다.
위치가 있는 어휘는 다음으로 추가로 라벨을 붙일 수 있습니다.무게, 다음과 같습니다.A, B, C또는D. D은 기본값이므로 표시되지 않습니다. 출력:
SELECT 'a:1A 지방:2B,4C 고양이:5D'::ts벡터;
          ts벡터          
---------------
 'a':1A '고양이':5 '지방':2B,4C
    가중치는 일반적으로 문서 구조를 반영하는 데 사용됩니다. 예를 들어 제목 단어를 본문 단어와 다르게 표시합니다. 텍스트 검색 순위 기능은 다양한 우선순위를 할당할 수 있습니다. 다른 체중 표시에.
다음을 이해하는 것이 중요합니다.ts벡터유형 자체는 어떤 작업도 수행하지 않습니다. 정규화; 주어진 단어는 다음과 같다고 가정합니다. 애플리케이션에 맞게 정규화되었습니다. 예를 들어,
'살찐 쥐'를 선택하세요::tsVector;
      ts벡터      
-------
 '뚱뚱한' '그' '쥐'
    대부분의 영어 텍스트 검색 응용프로그램에서 위의 단어는
    정규화되지 않은 것으로 간주되지만ts벡터상관없어요. 원시 문서 텍스트는 다음과 같습니다.
    일반적으로 통과됩니다.to_ts벡터단어를 정규화하려면
    검색에 적합함:
SELECT to_tsVector('english', 'The Fat Rats');         
   to_ts벡터   
-----------------
 '지방':2 '쥐':3
    다시, 참조토토 사이트 추천 : 문서 : 8.3 : 전문 검색더 보기 자세히.
A tsquery값은 다음과 같은 어휘를 저장합니다. 검색하고 부울을 사용하여 결합합니다. 연산자&(그리고),|(OR) 및!(아님). 괄호를 사용하여 그룹화를 강제할 수 있습니다. 연산자:
SELECT '지방 및 쥐'::tsquery;
    쿼리    
---------------
 '뚱뚱하다'와 '쥐'
SELECT '지방 & (쥐 | 고양이)'::tsquery;
          쿼리          
--------------
 '지방' & ( '쥐' | '고양이' )
SELECT '지방 & 쥐 & ! 고양이'::tsquery;
        쿼리         
-----------
 '뚱뚱하다' & '쥐' & !'고양이'
    괄호가 없으면,!(NOT)이 가장 단단하게 결합되며,&(AND)는 다음보다 더 단단히 결합합니다.|(또는).
선택적으로 a의 어휘소tsquery할 수 있다 하나 이상의 중량 문자로 라벨을 지정해야 합니다. 일치하는 항목만ts벡터어휘 해당 가중치 중 하나:
SELECT 'fat:ab & cat'::tsquery;
    쿼리
------------------
 '지방':AB & '고양이'
    어휘에 대한 인용 규칙은 위에서 설명한 것과 동일합니다
    어휘의 경우ts벡터; 그리고, 마찬가지로ts벡터, 필요한 정규화
    단어를 넣기 전에 완료해야 합니다.tsquery유형.to_tsquery함수는 다음에 편리합니다.
    이러한 정규화를 수행합니다:
SELECT to_tsquery('Fat:ab & 고양이');
    to_tsquery    
------------------
 '지방':AB & '고양이'