PostgreSQL두 가지 데이터를 제공합니다 전체 텍스트 검색을 지원하도록 설계된 유형은 자연 언어 모음을 통한 검색 활동문서가장 좋은 것을 찾으십시오 일치 a쿼리. 그만큼TSVECTOR유형은 적합한 양식의 문서를 나타냅니다 텍스트 검색의 경우TSQUERY타입 마찬가지로 쿼리를 나타냅니다.토토 사이트 추천 : 문서 : 8.3 : 전문 검색이 시설에 대한 자세한 설명을 제공하고PostgreSQL : 문서 : 8.3 : 텍스포츠 토토 검색 기능 및 연산자요약 관련 기능 및 운영자.
aTSVECTOR값은 정렬 된 목록입니다 별개의lexemes정규화다르게 만들기 위해 같은 단어의 변형은 똑같이 보입니다 (참조12 장자세한 내용). 정렬 및 중복 제거는 입력 중에 자동으로 수행됩니다 이 예에 표시 :
'뚱뚱한 고양이가 매트에 앉아 뚱뚱한 쥐를 먹었다':: tsvector; tsvector ----------------------------------------------------------- 'a' 'on' '및' 'ate' 'cat' 'fat' 'mat' '쥐' 'sat'
그런 다음 알파벳순으로 이루어 지지만 그 세부 사항은 거의 중요하지 않습니다.) 공백 또는 구두점을 포함하는 렉서스를 나타냅니다. 인용문으로 둘러싸여 :
선택 $$ lexeme '' ''공백이 포함되어 $$ :: tsvector; tsvector --------------------------------------------------- '' '' 'lexeme' ''공간 ''포함 '
(우리는이 예제에서 달러에 따른 문자 그럴을 사용합니다 다음은 혼란 스러움을 피하기 위해 두 배로 리터럴 내에 인용 표시.) 임베디드 인용문 및 백 슬래시는 두 배가되어야합니다 :
선택 $$ lexeme 'joe' '' '는 인용문 $$ :: tsvector; tsvector ------------------------------------------------ '' '' '조'의 ''인용 ''lexeme ''
선택적으로, 정수위치 (s)can 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 'on': 5 '및': 8 'ate': 9 '고양이': 3 'fat': 2,11 'mat': 7 '쥐': 12 'sat': 4
위치는 일반적으로 소스 단어의 위치를 나타냅니다 문서. 위치 정보를 사용할 수 있습니다근접 순위. 위치 값은 범위가 될 수 있습니다 1에서 16383까지; 더 많은 숫자는 16383으로 조용히 고정됩니다. 동일한 lexeme의 중복 위치는 폐기됩니다.
위치가있는 lexemes는 더 이상 레이블을 지정할 수 있습니다웨이트,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 ------------------- 'Fat' '' ''쥐 '
대부분의 영어 토토 사이트 순위 검색 응용 프로그램의 경우 위의 단어
정상화되지 않은 것으로 간주되지만TSVECTOR신경 쓰지 않습니다. 원시 문서 텍스트
보통 통과to_tsvector
단어를 정상화합니다
적절하게 토토 사이트 순위 :
select to_tsvector ( '영어', '뚱뚱한 쥐'); to_tsvector ------------------ '지방': 2 '쥐': 3
다시 참조토토 사이트 추천 : 문서 : 8.3 : 전문 검색더 많은 세부 사항.
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에 대한 인용 규칙은 위에서 설명한 것과 동일합니다.
lexemes의 경우TSVECTOR; 그리고와 마찬가지로TSVECTOR, 필요한 정규화
단어를에 넣기 전에 단어를 수행해야합니다.tsquery타입. 그만큼to_tsquery
함수는 편리합니다
그러한 정규화 수행 :
select to_tsquery ( 'fat : ab & cats'); to_tsquery ----------------- '지방': AB & 'CAT'