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

표 9.42, 표 9.43표 9.44전체 토토 사이트 검색을 위해 제공되는 기능과 연산자를 요약합니다. 보다무지개 토토 사이트 : 문서 : 17 : 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.

길이 ( '지방 : 2,4 고양이 : 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,]Query 토토 사이트) →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, 웨이트 "char", lexemes 토토 사이트 []) →TSVECTOR

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

setweight ( 'fat : 2,4 cat : 3 rat : 5,6b':: tsvector, 'a', 'cat, rat')'고양이': 3A '지방': 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,]Document JSON, 필터 JSONB) →TSVECTOR

JSONB_TO_TSVECTOR([config RegConfig,]토토 사이트 JSONB, 필터 JSONB) →TSVECTOR

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

json_to_tsvector ( '영어', ' "A": "뚱뚱한 쥐", "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

|쿼리대상에 따라 a.select명령. 보다섹션 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, 거리 Integer) →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) →기록(lexeme 토토 사이트, 위치 smallint [], 웨이트 토토 사이트)

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

SELECT * FROM UNNEST ( 'CAT : 3 FAT : 2,4 RAT : 5A':: TSVECTOR)

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

Note

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

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

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

function

설명

예제

TS_DEBUG([config RegConfig,]토토 사이트 토토 사이트) →기록(alias 토토 사이트, 설명 토토 사이트, 토큰 토토 사이트, 사전 RegDictionary [], Dictionary 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 정수, 토큰 토토 사이트)

TOKENS를 추출하여토토 사이트명명 된 파서를 사용합니다. 보다섹션 12.8.2자세한 내용.

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

TS_PARSE(parser_oid OID, 토토 사이트 토토 사이트) →기록(TOKID 정수, 토큰 토토 사이트)

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

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

TS_TOKEN_TYPE(parser_name 토토 사이트) →기록(TOKID 정수, alias 토토 사이트, 설명 토토 사이트)

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

TS_TOKEN_TYPE ( 'Default')(1, asciiword, "Word, All Ascii") ...

TS_TOKEN_TYPE(parser_oid OID) →Setof Record(TOKID 정수, alias 토토 사이트, 설명 토토 사이트)

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

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

TS_STAT(sqlquery 토토 사이트[, 웨이트 토토 사이트]) →기록(Word 토토 사이트, ndoc Integer, Nentry Integer)

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

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


수정 제출

토토 사이트에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식토토 사이트 문제를보고하려면