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