PostgreSQL 에서 영문 혼합 단어 특수 규칙 (중국어 단어, 영어 단어) - 중 영 분명
PostgreSQL, 정규 표현 식, 단어, 분할
배경
어떤 업무 시스템 에 이런 요구 가 있다.
단 어 를 나 눈 후에 영 어 는 단어 형식 으로 나타 나 고 중국어 (다 바이트 문자) 는 단일 문자 로 나타 나 도록 요구한다.
이런 수 요 를 어떻게 실현 해 야 합 니까?
사용자 정의 단어 규칙 UDF
절 사의 일부 함 축 된 매개 변 수 는 참고 하 시기 바 랍 니 다.
'아 리 클 라 우 드 PostgreSQL zhparser 를 사용 할 때 알 수 없 는 몇 가지 인자'
한 글자 가 나 오 려 면 다 중 바이트 문자 에 대해 서 는 한 글자 로 설정 해 야 합 니 다.
postgres=# set zhparser.multi_zall=on;
postgres=# SELECT array_to_tsvector(array_agg(token)) from ts_debug('testzhcfg', ' hello digoal')
where (char_length(token)=1 and octet_length(token)<>1 ) or (char_length(token)=octet_length(token));
array_to_tsvector
-----------------------------------------------------
'digoal' 'hello' ' ' ' ' ' ' ' ' ' ' ' ' ' '
(1 row)
이상 은 업무 수 요 를 만족 시 키 고 중국 어 는 글자, 영 어 는 단어 에 따른다.
다음은 UDF 를 써 서 컴 파일 해서 사용 합 니 다.
create or replace function udf_to_tsvector(regconfig,text) returns tsvector as $$
SELECT array_to_tsvector(array_agg(token)) from ts_debug($1, $2)
where (char_length(token)=1 and octet_length(token)<>1 ) or (char_length(token)=octet_length(token));
$$ language sql strict immutable;
테스트, 업무 수요 만족
postgres=# select udf_to_tsvector('testzhcfg', ' hello digoal');
udf_to_tsvector
-----------------------------------------------------
'digoal' 'hello' ' ' ' ' ' ' ' ' ' ' ' ' ' '
(1 row)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.