이 문서는 지원되지 않는 버전의 토토 꽁 머니 용입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : F.46. UNCENCER - Diacritics를 제거하는 텍스트 검색 스포츠 토토 결과버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.43. uncent

Unaccentlexemes에서 악센트 (Diacritic Signs)를 제거하는 텍스트 검색 사전입니다. 필터링 사전으로, 사전의 정상적인 동작과 달리 출력이 항상 다음 사전 (있는 경우)으로 전달됩니다. 이를 통해 전체 텍스트 검색을위한 악센트 감민 처리가 가능합니다.

현재의 구현Unaccent정상화 사전으로 사용할 수 없습니다THESAURUS사전.

F.43.1. 구성

anUnaccent사전은 다음 옵션을 수락합니다.

  • 규칙는 번역 규칙 목록을 포함하는 파일의 기본 이름입니다. 이 파일은에 저장해야합니다.$ sharedir/tsearch_data/(where$ sharedir의미토토 꽁 머니설치의 공유 데이터 디렉토리). 그 이름은 끝나야합니다.rules(규칙매개 변수).

규칙 파일에는 다음 형식이 있습니다.

  • 각 줄은 악센트가없는 캐릭터와 악센트가없는 캐릭터로 구성된 쌍을 나타냅니다. 첫 번째는 두 번째로 번역됩니다. 예를 들어,

    à a
    Á a
    Â a
    Â a
    ä a
    Å a
    Æ A

대부분의 유럽 언어에 직접 유용한 더 완전한 예는 찾을 수 있습니다.Unaccent.rules$ sharedir/tsearch_data/언제Unaccent모듈이 설치되었습니다.

F.43.2. 용법

설치Unaccent확장자 텍스트 검색 템플릿을 만듭니다Unaccent및 사전Unaccent그만큼UnaccentDictionary는 기본 매개 변수 설정이 있습니다규칙 = 'unccent', 이로 인해 표준으로 즉시 사용할 수 있습니다Unaccent.rules파일. 원한다면 매개 변수를 변경할 수 있습니다 (예 :

mydb =# Alter Text 검색 사전 Unaccent (Rules = 'my_rules');

또는 템플릿을 기반으로 새로운 사전 생성.

사전을 테스트하려면 시도 할 수 있습니다.

mydb =# select ts_lexize ( 'unccent', 'hôtel');
 ts_lexize
----------
 호텔

삽입하는 방법을 보여주는 예가 있습니다Unaccent텍스트 검색 구성으로의 사전 :

mydb =# 텍스트 검색 구성 fr (copy = french);
mydb =# 텍스트 검색 구성 fr
        hword, hword_part, word의 Alter 매핑
        비한이없는 프랑스어;
mydb =# select to_tsvector ( 'fr', 'hôtels de la mer');
    to_tsvector
--------------------
 '호텔': 1 'mer': 4
(1 줄)

mydb =# select to_tsvector ( 'fr', 'hôtel de la mer') @@ to_tsquery ( 'fr', 'Hotels');
 ?열?
---------
 티
(1 줄)

mydb =# select ts_headline ( 'fr', 'hôtel de la mer', to_tsquery ( 'fr', 'Hotels'));
      ts_headline
-------------------------
 <b Hôtel </b de la mer
(1 행)

F.43.3. 기능

theUnaccent ()함수는 주어진 문자열에서 액센트 (diacritic signs)를 제거합니다. 기본적으로 그것은 주위의 래퍼입니다Unaccent사전이지만 일반 텍스트 검색 컨텍스트 외부에서 사용할 수 있습니다.

Unaccent ([Dictionary RegDictionary, ]String 텍스트) 반환텍스트

if theDictionary인수가 생략되고, 텍스트 검색 사전이라는Unaccent|Unaccent ()함수 자체가 사용됩니다.

예 :

Unaccent를 선택하십시오 ( 'Unaccent', 'Hôtel');
Unaccent를 선택하십시오 ( 'Hôtel');