사용자 정의 텍스트 검색 구성의 동작은 쉽게 혼란스러워 질 수 있습니다. 이 섹션에 설명 된 기능은 텍스트 검색 개체를 테스트하는 데 유용합니다. 완전한 구성을 테스트하거나 구문 분석기 및 사전을 별도로 테스트 할 수 있습니다.
함수TS_DEBUG
텍스트 검색 구성을 쉽게 테스트 할 수 있습니다.
TS_DEBUG ([config
RegConfig
, ]문서
텍스트
, 밖으로alias
텍스트
, 밖으로설명
텍스트
, 밖으로토큰
텍스트
, 밖으로사전
RegDictionary []
, 밖으로사전
Regdictionary
, 밖으로lexemes
텍스트 []
) 레코드를 반환
TS_DEBUG
모든 토큰에 대한 정보 표시문서
파서에 의해 생성되고 구성된 사전에 의해 처리 된대로. 에 지정된 구성을 사용합니다.config
또는default_text_search_config
해당 인수가 생략된다면.
TS_DEBUG
구문 분석기에서 텍스트에서 식별 된 각 토큰에 대해 하나의 행을 반환합니다. 반환 된 열은입니다.
alias
텍스트
- 토큰 유형의 짧은 이름
설명
텍스트
- 토큰 유형 설명
토큰
텍스트
- 토큰의 텍스트
사전
RegDictionary []
-이 토큰 유형의 구성에 의해 선택된 사전
Dictionary
RegDictionary
- 토큰을 인식 한 사전 또는NULL
그렇지 않은 경우
Lexemes
텍스트 []
- 토큰을 인식 한 사전에 의해 생성 된 Lexeme (들)NULL
아무도하지 않았다면; 빈 배열 ()는 그것이 중지 단어로 인식되었음을 의미합니다.
다음은 간단한 예입니다.
선택 *에서 ts_debug에서 ( '영어', '뚱뚱한 고양이는 매트에 앉아 뚱뚱한 쥐를 먹었습니다.); 별칭 | 설명 | 토큰 | 사전 | 사전 | Lexemes ------------+---------------------------------------------------------------------------- asciiword | 단어, 모든 ascii | A | English_Stem | E토토 결과lish_stem | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 지방 | English_Stem | E토토 결과lish_stem | 지방 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 고양이 | English_Stem | E토토 결과lish_stem | 고양이 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | SAT | English_Stem | E토토 결과lish_stem | 앉았다 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | on | English_Stem | E토토 결과lish_stem | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | A | English_Stem | E토토 결과lish_stem | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 매트 | English_Stem | E토토 결과lish_stem | 매트 blank | 공간 기호 | | | | blank | 공간 기호 | - | | | asciiword | 단어, 모든 ascii | 그것은 | English_Stem | E토토 결과lish_stem | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | ate | English_Stem | E토토 결과lish_stem | 먹었다 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | A | English_Stem | E토토 결과lish_stem | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 지방 | English_Stem | E토토 결과lish_stem | 지방 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 쥐 | English_Stem | E토토 결과lish_stem | 쥐
보다 광범위한 데모를 위해 먼저 A를 만듭니다.public.e토토 결과lish
영어의 구성 및 ISPELL 사전 :
텍스트 검색 구성 configuration public.e토토 결과lish (copy = pg_catalog.english); 텍스트 검색 사전 생성 E토토 결과lish_ispell ( 템플릿 = ispell, dictfile = 영어, afffile = 영어, stopwords = 영어 ); Alter Text 검색 구성 public.e토토 결과lish E토토 결과lish_ispell, E토토 결과lish_stem;로 asciiword의 Alter Mapping Alter Mapping
select * from ts_debug ( 'public.e토토 결과lish', '가장 밝은 초신성'); 별칭 | 설명 | 토큰 | 사전 | 사전 | Lexemes -------------------------------------------------------------------------------------------------------------------------- asciiword | 단어, 모든 ascii | | E토토 결과lish_ispell, English_Stem | E토토 결과lish_ispell | blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 가장 밝은 | E토토 결과lish_ispell, English_Stem | E토토 결과lish_ispell | 밝은 blank | 공간 기호 | | | | asciiword | 단어, 모든 ascii | 초신성 | E토토 결과lish_ispell, English_Stem | E토토 결과lish_stem | supernova
이 예에서 단어Brightest
파서에 의해ASCII Word
(별명asciiword
). 이 토큰 유형의 경우 사전 목록은입니다.E토토 결과lish_ispell
andE토토 결과lish_stem
. 단어는에 의해 인정되었습니다.E토토 결과lish_ispell
,이를 명사로 줄였습니다Bright
. 단어Supernovaes
E토토 결과lish_ispell
사전은 다음 사전으로 전달되었고 다행히도 인정되었습니다 (실제로E토토 결과lish_stem
모든 것을 인식하는 눈덩이 사전입니다. 그것이 사전 목록의 끝에 배치 된 이유입니다.)
단어the
E토토 결과lish_ispell
정지 단어로서의 사전 (섹션 12.6.1) 색인화되지 않습니다. 구성은 그들에게 전혀 사전을 제공하지 않기 때문에 공간도 폐기됩니다.
보고 싶은 열을 명시 적으로 지정하여 출력 폭을 줄일 수 있습니다.
별명, 토큰, 사전, Lexemes를 선택하십시오 ts_debug ( 'public.e토토 결과lish', '가장 밝은 초신성'); 별칭 | 토큰 | 사전 | Lexemes -----------+----------------------------------------- asciiword | | E토토 결과lish_ispell | blank | | | asciiword | 가장 밝은 | E토토 결과lish_ispell | 밝은 blank | | | asciiword | 초신성 | E토토 결과lish_stem | supernova
다음 함수는 텍스트 검색 파서의 직접 테스트를 허용합니다.
TS_PARSE (parser_name
텍스트
,Document
텍스트
, 밖으로Tokid
정수
, out토큰
텍스트
) 반환기록 설정
TS_PARSE (parser_oid
OID
,문서
텍스트
, 밖으로TOKID
정수
, out토큰
텍스트
) 반환Setof Record
TS_PARSE
주어진 주어진문서
그리고 구문 분석에 의해 생성 된 각 토큰마다 일련의 레코드를 반환합니다. 각 레코드에는 A가 포함됩니다.TOKID
지정된 토큰 유형 및 A 표시토큰
토큰의 텍스트입니다. 예를 들어:
선택 *에서 ts_parse ( 'default', '123- 숫자'); Tokid | 토큰 -------+-------- 22 | 123 12 | 12 | - 1 | 에이 12 | 1 | 숫자
TS_TOKEN_TYPE (parser_name
텍스트
, outTOKID
정수
, 밖으로alias
텍스트
, out설명
텍스트
) 반환Setof Record
TS_TOKEN_TYPE (parser_oid
OID
, outTOKID
Integer
, 밖으로alias
텍스트
, out설명
텍스트
) 반환Setof Record
TS_TOKEN_TYPE
지정된 파서가 인식 할 수있는 각 유형의 토큰을 설명하는 테이블을 반환합니다. 각 토큰 유형에 대해 테이블은 정수를 제공합니다TOKID
파서가 해당 유형의 토큰에 레이블을 지정하는 데 사용하는alias
구성 명령에서 토큰 유형의 이름을 지정하고 짧은설명
. 예를 들어:
선택 *에서 ts_token_type ( 'default'); Tokid | 별칭 | 설명 -------+--------------------------------------------------------------- 1 | asciiword | 단어, 모든 ascii 2 | 단어 | 단어, 모든 편지 3 | numword | 단어, 문자 및 숫자 4 | 이메일 | 이메일 주소 5 | url | URL 6 | 호스트 | 주인 7 | sfloat | 과학적 표기법 8 | 버전 | 버전 번호 9 | hword_numpart | 하이픈으로 된 단어 부분, 문자 및 숫자 10 | hword_part | 하이픈으로 된 단어 부분, 모든 글자 11 | hword_asciipart | 하이픈으로 된 단어 부품, 모든 ascii 12 | blank | 공간 기호 13 | 태그 | XML 태그 14 | 프로토콜 | 프로토콜 헤드 15 | numhword | 하이픈으로 된 단어, 글자 및 숫자 16 | asciihword | 하이픈으로 된 단어, 모든 ascii 17 | hword | 하이픈으로 된 단어, 모든 글자 18 | url_path | URL 경로 19 | 파일 | 파일 또는 경로 이름 20 | 플로트 | 소수점 표기법 21 | int | 서명 된 정수 22 | uint | 서명되지 않은 정수 23 | 엔티티 | XML 엔티티
thets_lexize
함수는 사전 테스트를 용이하게합니다.
ts_lexize (DICT
RegDictionary
,토큰
텍스트
) 반환텍스트 []
ts_lexize
입력 한 경우 Lexemes 배열을 반환토큰
토큰이 사전에 알려져있는 경우 사전 또는 빈 배열로 알려져 있지만 중지 단어, 또는입니다.NULL
그것이 알려지지 않은 단어라면.
예 :
ts_lexize를 선택합니다 ( 'E토토 결과lish_stem', 'stars'); ts_lexize ---------- 별 ts_lexize ( 'E토토 결과lish_stem', 'a')를 선택하십시오. ts_lexize ----------
thets_lexize
함수는 단일을 기대합니다토큰, 텍스트가 아닙니다. 다음은 혼란 스러울 수있는 경우입니다.
ts_lexize ( 'thesaurus_astro', 'supernovae stars')를 선택하십시오. ?열? --------- 티
The Surus DictionaryThesaurus_astro
문구를 알고 있습니다Supernovae Stars
그러나ts_lexize
입력 텍스트를 구문 분석하지 않고 단일 토큰으로 취급하므로 실패합니다. 사용Plainto_tsquery
또는to_tsvector
예를 들어, 시소러스 사전을 테스트하려면 :
Plainto_tsquery ( 'Supernovae Stars')를 선택하십시오. Plainto_tsquery ------------------ 'sn'
문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면