이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다스포츠 토토 4_10버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.13. 사설 토토 검색 기능 및 연산자#

표 9.42, 표 9.43표 9.44전체 사설 토토 검색을 위해 제공되는 기능과 연산자를 요약합니다. 보다토토 사이트 추천 : 문서 : 개발 : 12 장. 전문 검색에 대한 자세한 설명postgresql의 사설 토토 검색 시설.

표 9.42. 사설 토토 검색 연산자

운영자

설명

예제

TSVECTOR @@ tsquery부울

tsquery @@ tsvector부울

doTSVECTOR매치TSQUERY? (논쟁은 순서대로 주어질 수 있습니다.)

to_tsvector ( 'Fat Cats Ate Rats') @@ To_tsquery ( 'Cat & Rat')t

사설 토토 @@ tsquery부울

사설 토토 문자열이 수행됩니다.to_tsvector (), 매치tsquery?

'뚱뚱한 고양이는 쥐를 먹었다'@@ to_tsquery ( 'cat & rat')t

TSVECTOR || TSVECTORTSVECTOR

두 가지를 연결합니다TSVECTORs. 두 입력에 Lexeme 위치가 포함 된 경우 두 번째 입력 위치는 그에 따라 조정됩니다.

'a : 1 b : 2':: tsvector || 'C : 1 D : 2 B : 3':: tsvector'A': 1 'B': 2,5 'C': 3 'D': 4

TSQUERY && TSQUERYTSQUERY

및 2tsquerys Together, 두 입력 쿼리와 일치하는 문서와 일치하는 쿼리를 생성합니다.

'지방 | rat ':: tsquery &&'cat ':: tsquery( 'fat'| 'rat') & 'cat'

tsquery || tsqueryTSQUERY

Ors Twotsquerys Together, 입력 쿼리와 일치하는 문서와 일치하는 쿼리를 생성합니다.

'fat | 쥐 ':: tsquery || '고양이':: tsquery'fat'| '쥐'| '고양이'

!! tsquerytsquery

부정 atsquery, 입력 쿼리와 일치하지 않는 문서와 일치하는 쿼리 생성.

!! '고양이':: tsquery! 'cat'

tsquery <-- tsquerytsquery

두 입력 쿼리가 연속적인 Lexemes에서 일치하는 경우 일치하는 문구 쿼리를 구성합니다.

to_tsquery ( 'fat') <-- to_tsquery ( 'rat')'fat'<- '쥐'

TSQUERY @ tsquery부울

먼저tsquery두 번째를 포함합니까? (이것은 한 쿼리에 나타나는 모든 Lexemes가 다른 쿼리에 표시되어 결합 연산자를 무시하는지 여부를 고려합니다.)

'cat':: tsquery @ 'cat & rat':: tsqueryF

tsquery <@ tsquery부울

첫 번째TSQUERY두 번째에 포함되어 있습니까? (이것은 한 쿼리에 나타나는 모든 Lexemes가 다른 쿼리에 표시되어 결합 연산자를 무시하는지 여부를 고려합니다.)

'cat':: tsquery <@ 'cat & rat':: tsqueryt

'cat':: tsquery <@ '! cat & rat':: tsqueryt


이러한 전문 운영자 외에도 일반적인 비교 연산자가표 9.1유형에 사용할 수 있습니다TSVECTORandtsquery. 사설 토토 검색에는 그다지 유용하지 않지만 예를 들어 이러한 유형의 열에서 고유 인덱스를 구축 할 수 있습니다.

표 9.43. 사설 토토 검색 기능

기능

설명

예제

array_to_tsvector(사설 토토 []) →TSVECTOR

사설 토토 문자열 배열을 A로 변환합니다TSVECTOR. 주어진 문자열은 추가 처리없이 Lexemes로 사용됩니다. 배열 요소는 비어 있지 않아야합니다.NULL.

array_to_tsvector ( 'fat, cat, rat':: text [])'고양이' '뚱뚱한'쥐 '

get_current_ts_config() →RegConfig

현재 기본 사설 토토 검색 구성의 OID를 반환합니다 (default_text_search_config).

get_current_ts_config ()영어

길이(TSVECTOR) →정수

lexemes의 수를 반환합니다TSVECTOR.

길이 ( 'Fat : 2,4 Cat : 3 Rat : 5a':: tsvector)3

Numnode(tsquery) →정수

lexemes + 운영자의 수를 반환합니다tsquery.

Numnode ( '(Fat & Rat) | Cat':: tsquery)5

Plainto_tsquery([config RegConfig,]쿼리 사설 토토) →tsquery

사설 토토를 A로 변환합니다TSQUERY, 지정된 또는 기본 구성에 따라 단어 정규화. 문자열의 문장 부호는 무시됩니다 (쿼리 연산자를 결정하지 않음). 결과 쿼리는 사설 토토의 모든 비 스토프가 포함 된 문서와 일치합니다.

Plainto_tsquery ( '영어', '뚱뚱한 쥐')'fat'& 'rat'

Phraseto_tsquery([config RegConfig,]쿼리 사설 토토) →TSQUERY

사설 토토를 A로 변환합니다TSQUERY, 지정된 또는 기본 구성에 따라 단어 정규화. 문자열의 문장 부호는 무시됩니다 (쿼리 연산자를 결정하지 않음). 결과 쿼리는 사설 토토의 모든 비 스토프가 포함 된 문구와 일치합니다.

Phraseto_tsquery ( '영어', '뚱뚱한 쥐')'fat'<- '쥐'

Phraseto_tsquery ( '영어', '고양이와 쥐')'고양이'<2 '쥐'

WebSearch_to_tsquery([config RegConfig,]쿼리 사설 토토) →TSQUERY

사설 토토를 A로 변환합니다TSQUERY, 지정된 또는 기본 구성에 따라 단어 정규화. 인용 된 단어 시퀀스는 문구 테스트로 변환됩니다. 단어또는OR 연산자를 생산하는 것으로 이해되며 대시는 작동하지 않는 연산자를 생성합니다. 다른 구두점은 무시됩니다. 이것은 일부 일반적인 웹 검색 도구의 동작과 비슷합니다.

Websearch_to_tsquery ( '영어', '뚱뚱한 쥐 "또는 고양이 개')'fat'<- '쥐'| '고양이'& '개'

QueryTree(TSQUERY) →사설 토토

a의 인덱스 가능한 부분의 표현을 생성합니다.TSQUERY. 비어 있거나 정당한 결과t무시 할 수없는 쿼리를 나타냅니다.

Querytree ( 'foo &! bar':: tsquery)'foo'

setweight(Vector TSVECTOR, 웨이트 "char") →TSVECTOR

지정된 지정웨이트의 각 요소에Vector.

setweight ( 'fat : 2,4 cat : 3 rat : 5b':: tsvector, 'a')'cat': 3a 'fat': 2a, 4a '쥐': 5a

setweight(Vector TSVECTOR, weight "char", lexemes 사설 토토 []) →tsvector

지정된 지정웨이트의 요소VectorLexemes. 문자열Lexemes추가 처리없이 Lexemes로 간주됩니다. lexeme에서 일치하지 않는 문자열vector무시됩니다.

setweight ( 'fat : 2,4 cat : 3 rat : 5,6b':: tsvector, 'a', 'cat, rat')'고양이': 3A 'Fat': 2,4 '랫트': 5A, 6A

Strip(TSVECTOR) →TSVECTOR

에서 위치와 무게를 제거합니다TSVECTOR.

Strip ( 'Fat : 2,4 Cat : 3 Rat : 5a':: tsvector)'고양이' '뚱뚱한'쥐 '

to_tsquery([config RegConfig,]쿼리 사설 토토) →TSQUERY

사설 토토를 A로 변환합니다TSQUERY, 지정된 또는 기본 구성에 따라 단어 정규화. 단어는 유효한 것으로 결합해야합니다tsquery운영자.

TO_TSQUERY ( '영어', '& fat & rats')'fat'& 'rat'

to_tsvector([config RegConfig,]문서 사설 토토) →TSVECTOR

사설 토토를 A로 변환합니다TSVECTOR, 지정된 또는 기본 구성에 따라 단어 정규화. 위치 정보가 결과에 포함되어 있습니다.

to_tsvector ( '영어', '뚱뚱한 쥐')'fat': 2 '쥐': 3

to_tsvector([config RegConfig,]문서 JSON) →TSVECTOR

to_tsvector([config RegConfig,]문서 JSONB) →TSVECTOR

JSON 문서의 각 문자열 값을 A로 변환합니다TSVECTOR, 지정된 또는 기본 구성에 따라 단어 정규화. 그런 다음 결과를 문서 순서로 연결하여 출력을 생성합니다. 위치 정보는 각 문자열 값 쌍 사이에 하나의 스톱워드가 존재하는 것처럼 생성됩니다. (조심하십시오문서 주문JSON 객체의 필드 중 입력이있을 때JSONB; 예제의 차이를 관찰하십시오.)

to_tsvector ( '영어', 'aa ":"뚱뚱한 쥐 ","b ":"dog "':: json)'개': 5 '지방': 2 '쥐': 3

to_tsvector ( '영어', 'aa ":"뚱뚱한 쥐 ","b ":"dog "':: jsonb)'개': 1 'Fat': 4 '쥐': 5

json_to_tsvector([config RegConfig,]문서 JSON, 필터 JSONB) →TSVECTOR

JSONB_TO_TSVECTOR([config RegConfig,]문서 JSONB, 필터 JSONB) →TSVECTOR

JSON 문서에서 각 항목을 선택하여필터각각을 A로 변환합니다TSVECTOR, 지정된 또는 기본 구성에 따라 단어 정규화. 그런 다음 결과를 문서 순서로 연결하여 출력을 생성합니다. 위치 정보는 각 선택한 항목 쌍 사이에 하나의 스톱워드가 존재하는 것처럼 생성됩니다. (조심하십시오문서 주문JSON 객체의 필드 중 입력이있을 때JSONB.)필터JSONB이러한 키워드 중 0 이상을 포함하는 배열 :"String"(모든 문자열 값 포함),"숫자"(모든 숫자 값 포함),"부울"(모든 부울 값 포함),"키"(모든 키 포함) 또는"All"(위의 모든 것을 포함하도록). 특별한 경우,필터이러한 키워드 중 하나 인 간단한 JSON 값일 수도 있습니다.

JSON_TO_TSVECTOR ( 'English', 'A ":"The Fat Rats ","B ": 123':: JSON, '["String ","Numeric "]'123': 5 '지방': 2 '쥐': 3

json_to_tsvector ( '영어', ' "고양이": "뚱뚱한 쥐", "개": 123':: json, ' "all")'123': 9 '고양이': 1 '개': 7 '지방': 4 '쥐': 5

TS_DELETE(Vector TSVECTOR, lexeme 사설 토토) →TSVECTOR

주어진 발생이 제거lexeme에서Vector. 그만큼lexemeString은 추가 처리없이 Lexeme으로 취급됩니다.

TS_DELETE ( 'FAT : 2,4 CAT : 3 RAT : 5A':: TSVECTOR, 'FAT')'고양이': 3 '쥐': 5A

TS_DELETE(Vector TSVECTOR, Lexemes 사설 토토 []) →TSVECTOR

lexemes의 발생을 제거합니다lexemes에서Vector. 문자열Lexemes추가 처리없이 Lexemes로 간주됩니다. lexeme에서 일치하지 않는 문자열Vector무시됩니다.

TS_DELETE ( 'FAT : 2,4 CAT : 3 RAT : 5A':: TSVECTOR, ARRAY [ 'FAT', 'RAT']'고양이': 3

TS_FILTER(Vector TSVECTOR, 웨이트 "char"[]) →TSVECTOR

주어진 요소 만 선택웨이트에서Vector.

TS_FILTER ( 'Fat : 2,4 Cat : 3B, 7C Rat : 5A':: TSVector, 'A, B')'고양이': 3B '쥐': 5A

ts_headline([config RegConfig,]문서 사설 토토, 쿼리 tsquery[, 옵션 사설 토토]) →사설 토토

약식 형식으로,의 일치 (ES)를 표시합니다.쿼리in문서, 이것은 원시 사설 토토가 아닌입니다.TSVECTOR. 문서의 단어는 쿼리와 일치하기 전에 지정된 또는 기본 구성에 따라 정규화됩니다. 이 기능의 사용은에서 논의됩니다.섹션 12.3.4, 사용 가능한 것을 설명하는옵션.

TS_HEADLINE ( '뚱뚱한 고양이는 쥐를 먹었습니다.', 'cat')지방 <b 고양이 </b 쥐를 먹었습니다.

TS_HEADLINE([config RegConfig,]문서 JSON, 쿼리 tsquery[, 옵션 사설 토토]) →사설 토토

ts_headline([config RegConfig,]문서 JSONB, 쿼리 TSQUERY[, 옵션 사설 토토]) →사설 토토

약식 형식으로,의 일치 (ES)를 표시합니다.쿼리JSON 내 문자열 값으로 발생하는문서. 보다섹션 12.3.4자세한 내용은

TS_HEADLINE ( ' "CAT": "비가 내리는 고양이와 개"':: JSONB, 'CAT')"고양이": "Raining <b 고양이 </b 및 개"

TS_RANK([웨이트 Real [],]Vector TSVECTOR, 쿼리 TSQUERY[, 정규화 정수]) →Real

얼마나 잘 표시되는지 보여주는 점수를 계산합니다Vector일치쿼리. 보다섹션 12.3.3자세한 내용.

TS_RANK (TO_TSVECTOR ( '비가 오는 고양이와 개'), '고양이')0.06079271

TS_RANK_CD([웨이트 Real [],]vector tsvector, 쿼리 tsquery[, 정규화 정수]) →Real

얼마나 잘 보여주는 점수를 계산합니다Vector일치쿼리, 커버 밀도 알고리즘을 사용합니다. 보다섹션 12.3.3자세한 내용.

TS_RANK_CD (TO_TSVECTOR ( '비가 오는 고양이'), '고양이')0.1

TS_REWRITE(쿼리 TSQUERY, 대상 TSQUERY, 대체 TSQUERY) →tsquery

발생 대체대상with대체내에서쿼리. 보다섹션 12.4.2.1자세한 내용.

ts_rewrite ( 'a & b':: tsquery, 'a':: tsquery, 'foo | bar':: tsquery)'b'& ( 'foo'| 'bar')

TS_REWRITE(쿼리 TSQUERY, select 사설 토토) →TSQUERY

의 일부를 대체합니다쿼리대상에 따라 aselect명령. 보다섹션 12.4.2.1자세한 내용.

ts_rewrite를 선택하십시오 ( 'a & b':: tsquery, 'select t, s from aliases''b'& ( 'foo'| 'bar')

tsquery_phrase(Query1 TSQUERY, Query2 TSQUERY) →TSQUERY

일치를 검색하는 문구 쿼리 구성Query1Query2연속 Lexemes에서 (동일<--연산자).

tsquery_phrase (to_tsquery ( 'fat'), to_tsquery ( 'cat'))'fat'<- 'cat'

TSQUERY_PHRASE(Query1 tsquery, Query2 TSQUERY, 거리 정수) →TSQUERY

일치를 검색하는 문구 쿼리 구성Query1Query2정확히 발생합니다거리Lexemes.

tsquery_phrase (to_tsquery ( 'fat'), to_tsquery ( 'cat'), 10)'fat'<10 '고양이'

TSVECTOR_TO_ARRAY(TSVECTOR) →사설 토토 []

변환tsvectorLexemes 배열에.

TSVECTOR_TO_ARRAY ( 'FAT : 2,4 CAT : 3 RAT : 5A':: TSVECTOR)고양이, 지방, 쥐

Unnest(TSVECTOR) →Setof Record(lexeme 사설 토토, 위치 smallint [], 웨이트 사설 토토)

a 확장TSVECTORlexeme 당 하나의 행 세트로.

선택 * From Unnest ( '고양이 : 3 지방 : 2,4 쥐 : 5a':: tsvector)

lexeme | 위치 | 무게
--------+-----------+--------
 고양이 | 3 | 디
 지방 | 2,4 | d, d
 쥐 | 5 | 에이

Note

선택 사항을 수락하는 모든 사설 토토 검색 기능RegConfig인수는에 지정된 구성을 사용합니다.default_text_search_config그 주장이 생략 될 때.

함수표 9.44는 일반적으로 일상적인 사설 토토 검색 작업에 사용되지 않기 때문에 별도로 나열됩니다. 그들은 주로 새로운 사설 토토 검색 구성의 개발 및 디버깅에 도움이됩니다.

표 9.44. 사설 토토 검색 디버깅 기능

기능

설명

예제

TS_DEBUG([config RegConfig,]문서 사설 토토) →기록(alias 사설 토토, 설명 사설 토토, 토큰 사설 토토, 사전 RegDictionary [], 사전 Regdictionary, Lexemes 사설 토토 [])

토큰을 추출하고 정규화합니다문서지정된 또는 기본 사설 토토 검색 구성에 따라 각 토큰 처리 방법에 대한 정보를 반환합니다. 보다섹션 12.8.1자세한 내용.

TS_DEBUG ( '영어', '가장 밝은 초신성')(asciiword, "word, all ascii", the, English_Stem, English_Stem, ) ...

ts_lexize(dict RegDictionary, 토큰 사설 토토) →사설 토토 []

입력 토큰이 사전에 알려진 경우, 또는 토큰이 사전에 알려져있는 경우 빈 배열이지만 공허한 배열이지만 알려진 단어가 아닌 경우 널입니다. 보다섹션 12.8.3자세한 내용.

ts_lexize ( 'English_stem', 'stars')Star

TS_PARSE(parser_name 사설 토토, 문서 사설 토토) →Setof Record(TOKID Integer, 토큰 사설 토토)

토큰 추출물문서명명 된 파서를 사용합니다. 보다섹션 12.8.2자세한 내용.

TS_PARSE ( 'Default', 'foo -Bar')(1, foo) ...

TS_PARSE(parser_oid OID, 문서 사설 토토) →Setof Record(TOKID Integer, 토큰 사설 토토)

토큰 추출물DocumentOID로 지정된 파서를 사용합니다. 보다섹션 12.8.2자세한 내용.

TS_PARSE (3722, 'foo -bar')(1, foo) ...

TS_TOKEN_TYPE(parser_name 사설 토토) →기록(TOKID Integer, alias 사설 토토, 설명 사설 토토)

명명 된 파서가 인식 할 수있는 각 유형의 토큰을 설명하는 테이블을 반환합니다. 보다섹션 12.8.2자세한 내용.

ts_token_type ( 'default')(1, asciiword, "Word, All Ascii") ...

TS_TOKEN_TYPE(parser_oid OID) →Setof Record(TOKID Integer, alias 사설 토토, 설명 사설 토토)

OID가 지정한 구문 분석기가 인식 할 수있는 각 유형의 토큰을 설명하는 테이블을 반환합니다. 보다섹션 12.8.2자세한 내용.

TS_TOKEN_TYPE (3722)(1, asciiword, "Word, All Ascii") ...

TS_STAT(sqlquery 사설 토토[, 웨이트 사설 토토]) →기록(Word 사설 토토, NDOC Integer, Nentry 정수)

실행sqlquerytsvector열, 데이터에 포함 된 각 고유 한 Lexeme에 대한 통계를 반환합니다. 보다섹션 12.4.4자세한 내용.

TS_STAT ( 'APOD에서 벡터 선택')(foo, 10,15) ...