포스트그레SQL자연어 모음을 통해 검색하는 활동인 전체 텍스트 검색을 지원하도록 설계된 두 가지 데이터 유형을 제공합니다.문서가장 일치하는 항목을 찾으려면 a질의.ts벡터type은 텍스트 검색에 최적화된 형식의 문서를 나타냅니다.tsquerytype도 마찬가지로 텍스트 쿼리를 나타냅니다.롤 토토 : 문서 : 15 : 12 장. 전문 검색이 시설에 대한 자세한 설명을 제공합니다.윈 토토 4_10관련 함수 및 연산자를 요약합니다.
ts벡터A ts벡터값은 고유 항목의 정렬된 목록입니다.어휘, 이는 다음과 같은 단어입니다.정규화같은 단어의 다른 변형을 병합합니다(참조롤 토토 : 문서 : 15 : 12 장. 전문 검색자세한 내용). 다음 예에 표시된 것처럼 정렬 및 중복 제거는 입력 중에 자동으로 수행됩니다.
SELECT '뚱뚱한 고양이가 매트 위에 앉아 살찐 쥐를 먹었습니다'::tsVector;
                      ts벡터
---------------------------------------
 'a' 'and' 'ate' 'cat' 'fat' 'mat' 'on' 'rat' 'sat'
    공백이나 구두점이 포함된 어휘를 나타내려면 따옴표로 묶으십시오.
SELECT $$' ' 어휘에는 공백$$::tsVector가 포함되어 있습니다.
                 ts벡터
------------------------------
 ' ' '포함' '어휘소' '공백' 'the'
    (리터럴 내에서 큰따옴표를 사용해야 하는 혼란을 피하기 위해 이 예와 다음 예에서는 달러로 묶인 문자열 리터럴을 사용합니다.) 포함된 따옴표와 백슬래시는 두 배로 표시되어야 합니다.
SELECT $$'Joe''라는 어휘에는 인용문이 포함되어 있습니다$$::tsVector;
                    ts벡터
------------------------------------------------
 'Joe''s' 'a' '포함' '어휘소' '인용문' 'the'
    선택적으로 정수위치어휘소에 첨부할 수 있습니다:
SELECT 'a:1 fat:2 cat:3 sat:4 on:5 a:6 mat:7 and:8 ate:9 a:10 fat:11 rat:12'::tsVector;
                                  ts벡터
------------------------------------------------------------------
 'a':1,6,10 '및':8 'ate':9 'cat':3 'fat':2,11 'mat':7 'on':5 '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
    다시, 참조롤 토토 : 문서 : 15 : 12 장. 전문 검색자세한 내용은.
tsqueryA tsquery값은 검색할 어휘를 저장하며 부울 연산자를 사용하여 이를 결합할 수 있습니다.&(그리고),|(OR) 및!(NOT) 및 구문 스포츠 토토 연산자<-(다음). 변형도 있습니다<FOLLOWED BY 연산자의, 여기서NN은 검색 중인 두 어휘소 사이의 거리를 지정하는 정수 상수입니다.<-다음과 동일함<1.
괄호를 사용하여 이러한 연산자를 그룹화할 수 있습니다. 괄호가 없으면,!(NOT)이 가장 단단히 결합됩니다.<-(FOLLOWED BY) 다음으로 가장 밀접하게, 그 다음&(AND), 와|(OR) 가장 덜 단단하게 묶는 것.
다음은 몇 가지 예입니다:
SELECT '지방 및 쥐'::tsquery;
    쿼리
---------------
 '뚱뚱하다'와 '쥐'
SELECT '지방 & (쥐 | 고양이)'::tsquery;
          쿼리
--------------
 '지방' & ( '쥐' | '고양이' )
SELECT '지방 & 쥐 & ! 고양이'::tsquery;
        쿼리
-----------
 '뚱뚱하다' & '쥐' & !'고양이'
    선택적으로 a의 어휘소tsquery하나 이상의 가중치 문자로 라벨을 지정할 수 있으며, 이는 일치하는 문자로만 제한됩니다.ts벡터해당 가중치 중 하나를 갖는 어휘소:
SELECT 'fat:ab & cat'::tsquery;
    쿼리
------------------
 '지방':AB & '고양이'
    또한 a의 어휘소tsquery다음으로 라벨링 가능*접두사 일치를 지정하려면:
SELECT 'super:*'::tsquery; 쿼리 ----------- '슈퍼':*
이 쿼리는 다음의 모든 단어와 일치합니다.ts벡터다음으로 시작하는“슈퍼”.
어휘에 대한 인용 규칙은 이전에 어휘에 대해 설명한 것과 동일합니다.ts벡터; 그리고, 마찬가지로ts벡터, 필요한 단어 정규화는로 변환하기 전에 완료되어야 합니다.tsquery유형.to_tsquery함수는 이러한 정규화를 수행하는 데 편리합니다.
SELECT to_tsquery('Fat:ab & 고양이');
    to_tsquery
------------------
 '지방':AB & '고양이'
    참고to_tsquery다른 단어와 동일한 방식으로 접두사를 처리합니다. 이는 이 비교가 true를 반환함을 의미합니다.
SELECT to_tsVector( '대학원' ) @@ to_tsquery( 'postgres:*' ); ?열? ---------- 티
왜냐하면포스트그레다음으로 이어집니다postgr:
SELECT to_tsVector( '대학원' ), to_tsquery( 'postgres:*' ); to_ts벡터 | to_tsquery ---------------+------------ '대학원':1 | '포스트그':*
어간 형태와 일치하는대학원.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.