이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 사이트 추천 결과 Postgresql: Tài liệu: 17: 12.8. Kiểm tra và gỡ lỗi tìm kiếm văn bản버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

12.8. 테스트 및 디버깅 텍스트 찾다

사용자 정의 텍스트 검색 구성의 동작은 쉽게 혼란스러워. 이 섹션에 설명 된 기능은 다음과 같습니다 텍스트 검색 개체를 테스트하는 데 유용합니다. 당신은 완전한 것을 테스트 할 수 있습니다 구성 또는 파서 및 사전을 별도로 테스트합니다.

12.8.1. 구성 테스트

함수TS_DEBUG쉽게 허용합니다 텍스트 검색 구성 테스트.

TS_DEBUG ([ config RegConfig, ]문서 텍스트,
         밖으로별명 텍스트,
         밖으로설명 텍스트,
         밖으로토큰 텍스트,
         밖으로Dictionaries RegDictionary [],
         밖으로Dictionary RegDictionary,
         밖으로lexemes 텍스트 [])
         레코드를 반환

TS_DEBUG정보를 표시합니다 모든 토큰에 대해문서as 파서에 의해 생성되고 구성된 것으로 처리됩니다 사전. 에 지정된 구성을 사용합니다.config또는default_text_search_config그 주장이 있다면 생략.

TS_DEBUG각각에 대해 하나의 행을 반환합니다 파서에 의해 텍스트에서 식별 된 토큰. 열이 반환되었습니다 이다

  • 별명 텍스트- 토큰 유형의 짧은 이름

  • 설명 텍스트- 토큰 유형 설명

  • 토큰 텍스트- 토큰의 텍스트

  • Dictionaries RegDictionary []- 사전이 선택한 사전 이 토큰 유형에 대한 구성

  • Dictionary RegDictionary- 인식 한 사전 토큰, 또는NULL그렇지 않은 경우

  • Lexemes 텍스트 []- 사전에 의해 생성 된 Lexeme (들) 토큰을 인식했거나NULL아무도하지 않았다면; 빈 배열 ()는 그 의미를 의미합니다 중지 단어로 인식

여기 간단한 예가 있습니다 :

선택 *에서 ts_debug에서 ( '영어', '뚱뚱한 고양이는 매트에 앉았습니다 - 뚱뚱한 쥐를 먹었습니다.);
   별칭 |   설명 | 토큰 |  사전 |  사전 | Lexemes 
------------+----------------------------------------------------------------------------
 asciiword | 단어, 모든 ascii | A | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | 지방 | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 지방
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | 고양이 | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 고양이
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | SAT | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 앉았다
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | on | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | A | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | 매트 | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 매트
 blank | 공간 기호 |       |  |              | 
 blank | 공간 기호 | - |  |              | 
 asciiword | 단어, 모든 ascii | 그것은 | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | ate | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 먹었다
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | A | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | 지방 | E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | 지방
 blank | 공간 기호 |       |  |              | 
 asciiword | 단어, 모든 ascii | 쥐 | E토토 사이트 추천lish_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, E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_ispell | 
 blank | 공간 기호 |             |  |                | 
 asciiword | 단어, 모든 ascii | 가장 밝은 | E토토 사이트 추천lish_ispell, E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_ispell | 밝은
 blank | 공간 기호 |             |  |                | 
 asciiword | 단어, 모든 ascii | 초신성 | E토토 사이트 추천lish_ispell, E토토 사이트 추천lish_Stem | E토토 사이트 추천lish_stem | supernova

이 예에서 단어Brightest파서에 의해ASCII Word(별명asciiword). 이 토큰 유형을 위해 사전 목록은E토토 사이트 추천lish_ispellandE토토 사이트 추천lish_stem. 단어는에 의해 인정되었습니다.E토토 사이트 추천lish_ispell명사Bright. 단어SupernovaesE토토 사이트 추천lish_ispell사전으로 전달되었습니다 다음 사전, 그리고 다행히도 인정되었습니다 (실제로E토토 사이트 추천lish_Stem는 눈덩이 사전입니다 모든 것을 인식합니다. 그것이 끝에 배치 된 이유입니다 사전 목록).

단어theE토토 사이트 추천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

12.8.2. 파서 테스트

다음 기능은 텍스트 검색의 직접 테스트를 허용합니다. 파서.

TS_PARSE (parser_name 텍스트, Document 텍스트,
         밖으로TOKID Integer, out토큰 텍스트) 반환Setof RecordTS_PARSE (parser_oid OID, 문서 텍스트,
         밖으로Tokid Integer, out토큰 텍스트) 반환Setof Record

TS_PARSE주어진 주어진문서일련의 반환 녹음, 구문 분석에 의해 생성 된 각 토큰 당 하나. 각 레코드 포함Tokid지정된 표시 토큰 유형 및 A토큰텍스트입니다 토큰의. 예를 들어:

선택 *에서 ts_parse ( 'default', '123- 숫자');
 Tokid | 토큰
-------+--------
    22 | 123
    12 |
    12 | -
     1 | 에이
    12 |
     1 | 숫자
TS_TOKEN_TYPE (parser_name 텍스트, outTokid Integer,
              밖으로alias 텍스트, out설명 텍스트) 반환Setof RecordTS_TOKEN_TYPE (parser_oid OID, outTokid Integer,
              밖으로alias 텍스트, out설명 텍스트) 반환기록 설정

TS_TOKEN_TYPE테이블을 반환합니다 지정된 파서가 할 수있는 각 유형의 토큰을 설명합니다. 인정하다. 각 토큰 유형에 대해 테이블은 정수를 제공합니다TOKID파서가 레이블을 붙이는 데 사용합니다 그 유형의 토큰,별명그 이름 구성 명령의 토큰 유형 및 짧은설명. 예를 들어:

select * from 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 엔티티

12.8.3. 사전 테스트

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_tsvectorthesurus 사전을 테스트합니다 예:

Plainto_tsquery ( 'Supernovae Stars')를 선택합니다.
 Plainto_tsquery
------------------
 'sn'