이 문서는 지원되지 않는 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([ 구성 regconfig, ] 문서 스포츠 토토 베트맨,
            아웃별칭 스포츠 토토 베트맨,
            아웃설명 스포츠 토토 베트맨,
            아웃토큰 스포츠 토토 베트맨,
            아웃사전 regdictionary[],
            아웃사전 regdictionary,
            아웃어휘 스포츠 토토 베트맨[])
            레코드 세트를 반환합니다.

ts_debug정보 표시 모든 토큰에 대해문서파서에 의해 생성되고 구성된 사전. 다음에서 지정한 구성을 사용합니다.구성또는default_text_search_config그 인수가 다음과 같은 경우 생략했습니다.

ts_debug다음에 대해 하나의 행을 반환합니다. 파서가 스포츠 토토 베트맨에서 식별한 각 토큰. 기둥 반환된 것은

  • 별칭 스포츠 토토 베트맨— 토큰 유형의 짧은 이름

  • 설명 스포츠 토토 베트맨— 토큰 유형 설명

  • 토큰 스포츠 토토 베트맨— 토큰 스포츠 토토 베트맨

  • 사전 regdictionary[]— 다음에 의해 선택된 사전 이 토큰 유형의 구성

  • 사전 regdictionary— 인식한 사전 토큰 또는NULL아무도 하지 않았다면

  • 어휘 스포츠 토토 베트맨[]— 다음에 의해 생성된 어휘소 토큰을 인식한 사전 또는NULL아무도 하지 않았다면; 빈 배열({})은 정류장으로 인식되었음을 의미합니다. 단어

다음은 간단한 예입니다:

SELECT * FROM ts_debug('english','a fat cat sat on a mat - it eat a fat rat');
   별칭 |   설명 | 토큰 |  사전 |  사전 | 어휘소 
---------+------+-------+---+---------------+---------
 ASCII워드 | 단어, 모두 ASCII | | english_stem | 영어_줄기 | 
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 지방 | english_stem | 영어_줄기 | 지방
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 고양이 | english_stem | 영어_줄기 | 고양이
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 토 | english_stem | 영어_줄기 | 토
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 에 | english_stem | 영어_줄기 | 
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | | english_stem | 영어_줄기 | 
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 매트 | english_stem | 영어_줄기 | 매트
 공백 | 공간 기호 |       |  |              | 
 공백 | 공간 기호 | - |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 그것 | english_stem | 영어_줄기 | 
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 먹었다 | english_stem | 영어_줄기 | 먹었어요
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | | english_stem | 영어_줄기 | 
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 지방 | english_stem | 영어_줄기 | 지방
 공백 | 공간 기호 |       |  |              | 
 ASCII워드 | 단어, 모두 ASCII | 쥐 | english_stem | 영어_줄기 | 쥐

보다 광범위한 데모를 위해 먼저 다음을 만듭니다.public.english구성 및 영어 Ispell 사전:

스포츠 토토 베트맨 검색 구성 생성 public.english ( COPY = pg_catalog.english );

스포츠 토토 베트맨 검색 사전 만들기 english_ispell(
    템플릿 = ispell,
    DictFile = 영어,
    AffFile = 영어,
    StopWords = 영어
);

스포츠 토토 베트맨 검색 구성 변경 public.english
   english_ispell, english_stem을 사용하여 asciiword에 대한 매핑 변경;
SELECT * FROM ts_debug('public.english','가장 밝은 초신성');
   별칭 |   설명 |    토큰 |         사전 |   사전 |   어휘소   
---------+----+-------------+------------------+---+-------------
 ASCII워드 | 단어, 모두 ASCII | | english_ispell,english_stem | english_ispell | 
 공백 | 공간 기호 |             |  |                | 
 ASCII워드 | 단어, 모두 ASCII | 가장 밝다 | english_ispell,english_stem | english_ispell | 밝다
 공백 | 공간 기호 |             |  |                | 
 ASCII워드 | 단어, 모두 ASCII | 초신성 | english_ispell,english_stem | 영어_줄기 | 초신성

이 예에서는 단어가장 밝음파서가 다음과 같이 인식했습니다.ASCII 단어(별칭asciiword). 이를 위해 토큰 유형 사전 목록은 다음과 같습니다.english_ispell그리고english_stem. 해당 단어는 다음에서 인식되었습니다.english_ispell, 이는 다음과 같이 감소했습니다. 명사밝다. 단어초신성알 수 없음english_ispell사전이므로 다음에 전달되었습니다. 다음 사전은 다행히도 인식되었습니다(실제로,english_stem은 Snowball 사전입니다 모든 것을 인식합니다. 그래서 그 자리에 두었던 거야. 사전 목록 끝).

단어다음에 의해 인식되었습니다.english_ispell정지용 사전 단어(섹션 12.6.1)이며 색인이 생성되지 않습니다. 공백은 폐기됩니다. 또한 구성이 사전을 전혀 제공하지 않기 때문에 그들을 위해.

명시적으로 출력 너비를 줄일 수 있습니다. 보려는 열 지정:

별칭, 토큰, 사전, 어휘 선택
FROM ts_debug('public.english','가장 밝은 초신성');
   별칭 |    토큰 |   사전 |   어휘소   
---------+-------------+---+-------------
 ASCII워드 | | english_ispell | 
 공백 |             |                | 
 ASCII워드 | 가장 밝다 | english_ispell | 밝다
 공백 |             |                | 
 ASCII워드 | 초신성 | 영어_줄기 | 초신성

12.8.2. 파서 테스트

다음 함수를 사용하면 스포츠 토토 베트맨를 직접 테스트할 수 있습니다. 검색 파서.

ts_parse(파서_이름 스포츠 토토 베트맨, 문서 스포츠 토토 베트맨,
            아웃토키드 정수, 아웃토큰 스포츠 토토 베트맨) 반환레코드 집합ts_parse(parser_oid oid, 문서 스포츠 토토 베트맨,
            아웃토키드 정수, 아웃토큰 스포츠 토토 베트맨) 반환레코드 집합

ts_parse주어진 내용을 분석합니다문서그리고 시리즈를 반환합니다. 구문 분석을 통해 생성된 각 토큰에 대해 하나씩. 각 기록 다음을 포함합니다토키드할당된 항목 표시 토큰 유형 및 a토큰이것은 토큰의 스포츠 토토 베트맨입니다. 예를 들면:

SELECT * FROM ts_parse('기본값', '123 - 숫자');
 토키드 | 토큰
------+---------
    22 | 123
    12 |
    12 | -
     1 | 에
    12 |
     1 | 번호
ts_token_type(파서_이름 스포츠 토토 베트맨, 아웃토키드 정수,
                 아웃별명 스포츠 토토 베트맨, 아웃설명 스포츠 토토 베트맨) 반환레코드 세트ts_token_type(parser_oid oid, 아웃토키드 정수,
                 아웃별칭 스포츠 토토 베트맨, 아웃설명 스포츠 토토 베트맨) 반환레코드 집합

ts_token_type테이블을 반환합니다. 이는 지정된 파서가 수행할 수 있는 각 토큰 유형을 설명합니다. 인식하다. 각 토큰 유형에 대해 표는 정수를 제공합니다.토키드파서가 라벨을 지정하는 데 사용하는 것 해당 유형의 토큰인별칭그것 구성 명령에서 토큰 유형의 이름을 지정하고 짧은설명. 예를 들면:

SELECT * FROM ts_token_type('기본값');
 토키드 |      별칭 |               설명                
-----+------+--------------------------------------------
     1 | ASCII워드 | 워드, 모두 ASCII
     2 | 단어 | 단어, 모든 문자
     3 | 숫자 | 단어, 문자, 숫자
     4 | 이메일 | 이메일 주소
     5 | URL | URL
     6 | 호스트 | 호스트
     7 | 부유물 | 과학적 표기법
     8 | 버전 | 버전 번호
     9 | hword_numpart | 하이픈으로 연결된 단어 부분, 문자 및 숫자
    10 | hword_part | 하이픈으로 연결된 단어 부분, 모든 문자
    11 | hword_asciipart | 하이픈으로 연결된 단어 부분, 모두 ASCII
    12 | 공백 | 공간 기호
    13 | 태그 | XML 태그
    14 | 프로토콜 | 프로토콜 헤드
    15 | 숫자 | 하이픈으로 연결된 단어, 문자 및 숫자
    16 | ASCII워드 | 하이픈으로 연결된 단어, 모두 ASCII
    17 | 한워드 | 하이픈으로 연결된 단어, 모든 문자
    18 | URL_경로 | URL 경로
    19 | 파일 | 파일 또는 경로 이름
    20 | 플로트 | 십진법
    21 | 정수 | 부호 있는 정수
    22 | 단위 | 부호 없는 정수
    23 | 엔터티 | XML 엔터티

12.8.3. 사전 테스트

ts_lexize함수 사전 테스트를 용이하게 합니다.

ts_lexize(dict regdictionary, 토큰 스포츠 토토 베트맨) 반환스포츠 토토 베트맨[]

ts_lexize배열을 반환합니다. 입력인 경우 어휘토큰이다 사전에 알려져 있거나 토큰이 다음과 같은 경우 빈 배열입니다. 사전에는 알려져 있지만 불용어인 경우, 또는NULL알 수 없는 단어인 경우.

예:

SELECT ts_lexize('english_stem', '별');
 ts_lexize
-----------
 별

SELECT ts_lexize('english_stem', 'a');
 ts_lexize
-----------

참고:ts_lexize함수는 단일을 기대합니다토큰, 스포츠 토토 베트맨가 아닙니다. 여기에는 혼란스러울 수 있는 경우:

SELECT ts_lexize('thesaurus_astro','초신성 별')은 null입니다.
 ?열?
----------
 티

동의어 사전thesaurus_astro문구를 알고 있습니다초신성별하지만ts_lexize파싱하지 않기 때문에 실패합니다. 입력 스포츠 토토 베트맨이지만 이를 단일 토큰으로 처리합니다. 사용plainto_tsquery또는to_ts벡터동의어 사전 테스트 예를 들어 사전:

SELECT plainto_tsquery('초신성 별');
 plainto_tsquery
-----------------
 'sn'