이 스포츠 토토 사이트는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 토토 베이 : 17 : 12.3. 텍스트 검색 제어버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

12.3. 텍스트 검색 제어#

전체 텍스트 검색을 구현하려면 A를 만들 수있는 기능이 있어야합니다TSVECTOR스포츠 토토 사이트 및 A에서tsquery사용자 쿼리에서. 또한 결과를 유용한 순서로 반환해야하므로 스포츠 토토 사이트와 관련된 쿼리와 관련된 기능이 필요합니다.postgresql이러한 모든 기능에 대한 지원을 제공합니다.

12.3.1. 스포츠 토토 사이트 구문 분석#

postgresql함수 제공to_tsvector스포츠 토토 사이트를로 변환하려면TSVECTOR데이터 유형.

to_tsvector ([ config RegConfig, ] 스포츠 토토 사이트 텍스트) 반환TSVECTOR

to_tsvector텍스트 스포츠 토토 사이트를 토큰으로 구분하고, 토큰을 렉시 메스로 줄이고, a를 반환합니다.TSVECTOR스포츠 토토 사이트의 위치와 함께 Lexemes를 나열합니다. 스포츠 토토 사이트는 지정된 또는 기본 텍스트 검색 구성에 따라 처리됩니다.

select to_tsvector ( '영어', '뚱뚱한 고양이는 매트에 앉았습니다 - 뚱뚱한 쥐를 먹었습니다.);

위의 예에서 결과TSVECTOR단어가 포함되어 있지 않습니다a, on또는it, 단어rat및 문장 부호-무시되었습니다.

theto_tsvector함수는 내부적으로 스포츠 토토 사이트 텍스트를 토큰으로 나누고 각 토큰에 유형을 할당하는 파서를 내부적으로 호출합니다. 각 토큰에 대해 사전 목록 (섹션 12.6)는 토큰 유형에 따라 목록이 다를 수있는 곳에서 상담됩니다. 첫 번째 사전인식토큰은 하나 이상의 정규화를 방출합니다lexemes토큰을 나타냅니다. 예를 들어,rat12166_12222복수 형태의rat. 일부 단어는로 인식됩니다.단어 중지 (섹션 12.6.1), 이로 인해 검색에 너무 자주 발생하기 때문에 무시됩니다. 이 예에서는 이것들이a, onit. 목록의 사전이 토큰을 인식하지 않으면 무시됩니다.-실제로 토큰 유형에 할당 된 사전이 없기 때문에 (공간 기호), 공간 토큰은 결코 색인되지 않습니다. 파서, 사전 및 색인 유형 유형의 선택은 선택한 텍스트 검색 구성 (에 의해 결정됩니다.섹션 12.7). 동일한 데이터베이스에 다양한 구성을 가질 수 있으며 다양한 언어에 대해 사전 정의 된 구성을 사용할 수 있습니다.영어영어의 경우.

함수setweightA의 항목에 레이블을 지정하는 데 사용할 수 있습니다TSVECTOR웨이트, 무게가 문자 중 하나 인 곳A, B, C또는D. 이것은 일반적으로 제목 대 신체와 같은 스포츠 토토 사이트의 다른 부분에서 나오는 항목을 표시하는 데 사용됩니다.

왜냐하면to_tsvector(NULL) 복귀NULL, 사용하는 것이 좋습니다Coalesce필드가 널이 될 때마다. 다음은 a를 만드는 권장 방법입니다.TSVECTOR구조화 된 스포츠 토토 사이트에서 :

업데이트 tt set ti =

여기서 우리가 사용했습니다setweight완성 된 각 lexeme의 소스에 레이블을 지정하려면TSVECTORTSVECTORTSVECTOR연결 연산자||. (섹션 12.4.1이 작업에 대한 세부 정보 제공.)

12.3.2. 구문 분석 쿼리#

postgresql함수 제공to_tsquery, Plainto_tsquery, Phraseto_tsqueryandWebSearch_to_tsquery쿼리를 |tsquery데이터 유형.to_tsquery어느 것보다 더 많은 기능에 대한 액세스를 제공합니다Plainto_tsquery또는Phraseto_tsquery, 그러나 입력에 대해 덜 용서합니다.WebSearch_to_tsquery단순화 된 버전의to_tsquery웹 검색 엔진에서 사용하는 것과 유사한 대체 구문이 포함되어 있습니다.

TO_TSQUERY ([ config RegConfig, ] QueryText 텍스트) 반환tsquery

to_tsquerya 생성tsquery값에서QueryText.tsquery운영자&(및),|(또는),!(아님) 및<-->(뒤 따르는), 괄호를 사용하여 그룹화 될 수 있습니다. 다시 말해,에 대한 입력to_tsquery이미 일반 규칙을 따라야합니다tsquery입력,.섹션 8.11.2. 차이점은 기본적으로tsquery입력 토큰을 액면가로 가져옵니다.to_tsquery지정된 또는 기본 구성을 사용하여 각 토큰을 Lexeme으로 정규화하고 구성에 따라 중지 단어 인 토큰을 버립니다. 예를 들어:

select to_tsquery ( '영어', '& fat & rats');

BASIC에서와 같이tsquery입력, 무게 (들)를 각 lexeme에 부착하여 일치하도록 제한 할 수 있습니다TSVECTOR그 체중의 렉시 메스. 예를 들어:

select to_tsquery ( '영어', 'fat | rats : ab');

또한*접두사 매칭을 지정하기 위해 Lexeme에 부착 할 수 있습니다 :

select to_tsquery ( 'supern :*a & star : a*b');

그러한 lexeme은 a의 단어와 일치합니다.TSVECTOR주어진 문자열로 시작합니다.

to_tsquery단일 인용구를 허용 할 수도 있습니다. 이것은 구성에 이러한 문구에서 트리거 될 수있는 동의어 사전 사전이 포함 된 경우 주로 유용합니다.Supernovae Stars : SN:

select to_tsquery ( '' '초신성 스타' '&! crab');

따옴표없이to_tsqueryan and, or 또는 또는 연산자에 의해 분리되지 않은 토큰에 대한 구문 오류가 생성됩니다.

Plainto_tsquery ([ config RegConfig, ] QueryText 텍스트) 반환tsquery

Plainto_tsquery형식화되지 않은 텍스트 변환QueryTextatsquery값. 텍스트는 구문 분석되고 정규화됩니다.to_tsvector, 그런 다음&(및)tsquery연산자가 살아남은 단어 사이에 삽입됩니다.

예 :

Plainto_tsquery ( '영어', '뚱뚱한 쥐');

참고Plainto_tsquery인식하지 못할 것입니다tsquery입력의 연산자, 무게 라벨 또는 접두사 매치 레이블 :

Plainto_tsquery ( '영어', '지방 및 쥐 : C');

여기, 모든 입력 구두점이 폐기되었습니다.

Phraseto_tsquery ([ config RegConfig, ] QueryText 텍스트) 반환tsquery

Phraseto_tsquery매우 동작Plainto_tsquery,을 제외하고<-->(그 뒤에) 연산자는 대신 생존하는 단어 사이의 연산자&(및) 연산자. 또한 중지 단어는 단순히 버려지는 것이 아니라 삽입하여 설명합니다<N<-->연산자. 이 기능은 정확한 Lexeme 시퀀스를 검색 할 때 유용합니다. 연산자가 렉서드 순서를 확인하기 때문에 모든 lexemes의 존재가 아니라 Lexeme 순서를 확인하기 때문입니다.

예 :

Select Phraseto_tsquery ( '영어', '뚱뚱한 쥐');

좋아요Plainto_tsquery, ThePhraseto_tsquery함수는 인식되지 않습니다tsquery입력의 연산자, 무게 라벨 또는 접두사 매치 레이블 :

Select Phraseto_tsquery ( '영어', '지방 및 쥐 : C');
WebSearch_to_tsquery ([ config RegConfig, ] QueryText 텍스트) 반환tsquery

WebSearch_to_tsquerya 생성tsquery값에서QueryText간단한 형식화되지 않은 텍스트가 유효한 쿼리 인 대체 구문을 사용합니다. 같지 않은Plainto_tsqueryandPhraseto_tsquery, 또한 특정 연산자도 인식합니다. 또한이 기능은 구문 오류가 발생하지 않으므로 검색에 원시 사용자가 제공하는 입력을 사용할 수 있습니다.

  • 인용되지 않은 텍스트: 텍스트 내부에 텍스트가 아닌 인용 표시가 분리 된 용어로 변환됩니다&운영자, 마치 처리 된 것처럼Plainto_tsquery.

  • "인용문": 텍스트 내부의 텍스트는에 의해 분리 된 용어로 변환됩니다<-->운영자, 마치 처리 된 것처럼Phraseto_tsquery.

  • 또는: 단어또는||운영자.

  • -: 대시가로 변환됩니다.!운영자.

다른 구두점은 무시됩니다. 그래서 좋아요Plainto_tsqueryandPhraseto_tsquery, TheWebSearch_to_tsquery함수는 인식되지 않습니다tsquery입력의 연산자, 무게 라벨 또는 접두사 매치 레이블.

예 :

Websearch_to_tsquery ( '영어', '뚱뚱한 쥐');

12.3.3. 순위 검색 결과#

순위 순위는 특정 스포츠 토토 사이트가 특정 쿼리와 관련된 방법을 측정하려고 시도하여 많은 일치가있을 때 가장 관련성이 가장 좋은 내용을 먼저 표시 할 수 있습니다..postgresql어휘, 근접성 및 구조 정보를 고려한 두 가지 사전 정의 된 순위 함수를 제공합니다. 즉, 스포츠 토토 사이트에 쿼리 용어가 얼마나 자주 나타나는지, 스포츠 토토 사이트에 용어가 얼마나 가까이 있는지, 그리고 스포츠 토토 사이트가 발생하는 곳의 일부가 얼마나 중요한지 고려합니다.

현재 사용 가능한 두 순위 기능은 다음과 같습니다.

TS_RANK ([웨이트 float4 [], ] Vector TSVECTOR, 쿼리 tsquery [, 정규화 Integer]) returnsfloat4

일치하는 Lexemes의 빈도에 따라 벡터를 순위에 올랐습니다.

TS_RANK_CD ([웨이트 float4 [], ] Vector TSVECTOR, 쿼리 tsquery [, 정규화 Integer]) returnsfloat4

이 함수는를 계산합니다.커버 밀도Clarke, Cormack 및 Tudhope의 "Information Processing and Management", 1999의 저널의 "1 ~ 3 개의 쿼리에 대한 관련성 순위"에 설명 된 바와 같이 주어진 스포츠 토토 사이트 벡터 및 쿼리의 순위는와 유사합니다.TS_RANK렉서스와 일치하는 근접성이 서로 고려된다는 점을 제외하고 순위.

이 기능은 계산을 수행하기 위해 Lexeme 위치 정보가 필요합니다. 그러므로 그것은 어떤 것을 무시합니다스트리핑lexemes in theTSVECTOR. 입력에 쇄골이없는 Lexemes가 없으면 결과는 0이됩니다.섹션 12.4.1에 대한 자세한 내용은Strip함수 및 위치 정보TSVECTORs.)

이 기능 모두 선택 사항웨이트인수는 레이블이 지정되는 방식에 따라 단어 인스턴스를 다소 크게 측정 할 수있는 능력을 제공합니다. 웨이트 어레이는 순서대로 각 단어 범주의 무게를 크게 측정하는 방법을 지정합니다.

D- 중등도, C- 가이트, B- 가이트, A- 가이트

NO웨이트제공되면 이러한 기본값이 사용됩니다.

{0.1, 0.2, 0.4, 1.0}

일반적으로 가중치는 제목이나 초기 초록과 같은 스포츠 토토 사이트의 특수 영역에서 단어를 표시하는 데 사용되므로 스포츠 토토 사이트 본문의 단어보다 더 중요하게 취급 할 수 있습니다..

더 긴 스포츠 토토 사이트는 쿼리 용어를 포함 할 가능성이 더 높기 때문에 스포츠 토토 사이트 크기를 고려하는 것이 합리적입니다. 예를 들어 검색어가 5 개의 인스턴스가있는 백 단어 스포츠 토토 사이트는 5 개의 인스턴스가있는 천 단어 스포츠 토토 사이트보다 더 관련이있을 것입니다. 두 순위 기능 모두 정수를 취합니다정규화스포츠 토토 사이트의 길이가 순위에 영향을 미치는 지 여부와 방법을 지정하는 옵션. 정수 옵션은 몇 가지 동작을 제어하므로 약간의 마스크입니다.를 사용하여 하나 이상의 동작을 지정할 수 있습니다|(예 :2|4).

  • 0 (기본값)은 스포츠 토토 사이트 길이를 무시합니다

  • 1 순위를 1 + 스포츠 토토 사이트 길이의 로그로 나눕니다

  • 2 스포츠 토토 사이트 길이로 순위를 나눕니다

  • 4 순위를 범위 사이의 평균 고조파 거리로 나눕니다 (이것은에 의해서만 구현됩니다TS_RANK_CD)

  • 8 스포츠 토토 사이트의 고유 단어 수로 순위를 나눕니다

  • 16은 순위를 1 + 스포츠 토토 사이트의 고유 단어 수의 로그를 1 +로 나눕니다

  • 32 자체로 순위를 나눕니다 + 1

두 개 이상의 플래그 비트가 지정되면 순서대로 변환이 적용됩니다..

순위 함수는 글로벌 정보를 사용하지 않으므로 때때로 원하는대로 1% 또는 100%로 공정한 정규화를 생성하는 것은 불가능합니다. 정규화 옵션 32 (RANK/(RANK+1))는 모든 순위를 범위 0에서 1로 확장하기 위해 적용될 수 있지만 물론 이것은 단지 미용적인 변화 일뿐입니다. 검색 결과의 순서에는 영향을 미치지 않습니다.

여기 10 개의 가장 높은 순위 일치 만 선택하는 예는 다음과 같습니다.

계급을 선택, TS_RANK_CD (TEXTSEARCH, QUERY)로 순위로 선택하십시오

이것은 정규화 된 순위를 사용하는 것과 동일한 예입니다 :

계급 선택, TS_RANK_CD (TEXTSEARCH, QUERY, 32/ * RANK/(RANK+1) */)

순위는 컨설팅이 필요하기 때문에 비용이 많이들 수 있습니다TSVECTOR각각의 일치하는 스포츠 토토 사이트의 I/O 결합되어 느리게 할 수 있습니다. 불행히도, 실제 쿼리는 종종 많은 일치를 초래하기 때문에 피하는 것은 거의 불가능합니다.

12.3.4. 결과 강조#

검색 결과를 제시하려면 각 스포츠 토토 사이트의 일부와 쿼리와 관련된 방법을 보여주는 것이 이상적입니다. 일반적으로 검색 엔진은 검색어가 표시된 스포츠 토토 사이트 조각을 표시합니다.postgresql함수 제공ts_headline이 기능을 구현합니다.

ts_headline ([ config RegConfig, ] 스포츠 토토 사이트 텍스트, 쿼리 tsquery [, 옵션 텍스트 ]) returns텍스트

ts_headline쿼리와 함께 스포츠 토토 사이트를 수락하고 쿼리의 용어가 강조 표시되는 스포츠 토토 사이트에서 발췌문을 반환합니다. 구체적으로, 함수는 쿼리를 사용하여 관련 텍스트 조각을 선택한 다음 해당 단어 위치가 쿼리의 제한과 일치하지 않더라도 쿼리에 나타나는 모든 단어를 강조합니다.config; 만약에config생략,default_text_search_config구성이 사용됩니다.

IF an옵션String이 지정되어 있습니다. 하나 이상의 쉼표로 구분 된 목록으로 구성되어야합니다옵션=value쌍. 사용 가능한 옵션은 다음과 같습니다.

  • maxwords, minwords(정수) :이 숫자는 출력에 가장 길고 가장 짧은 헤드 라인을 결정합니다. 기본값은 35와 15입니다.

  • Shortword(정수) :이 길이 이하의 단어는 쿼리 용어가 아닌 한 헤드 라인의 시작과 끝에서 삭제됩니다. 3의 기본값은 일반적인 영어 기사를 제거합니다.

  • 하이라이트(부울) : iftrue전체 스포츠 토토 사이트는 앞의 세 매개 변수를 무시하고 헤드 라인으로 사용됩니다. 기본값은거짓.

  • maxfragments(정수) : 표시 할 최대 텍스트 조각 수. 0의 기본값은 비 배제 기반 헤드 라인 생성 방법을 선택합니다.

  • Startsel, Stopsel(문자열) : 스포츠 토토 사이트에 표시되는 쿼리 단어를 구분하여 다른 발췌 단어와 구별되는 문자열. 기본값은입니다.and”, HTML 출력에 적합 할 수 있습니다.

  • FragmentDelimiter(문자열) : 둘 이상의 조각이 표시되면 조각 이이 문자열로 분리됩니다. 기본값은....

이 옵션 이름은 사례에서 인식됩니다. 공백이나 쉼표가 포함 된 경우 문자열 값을 두 배로 인용해야합니다.

비 배수 기반 헤드 라인 생성에서ts_headline주어진 일치를 찾습니다쿼리허용되는 헤드 라인 길이 내에 더 많은 쿼리 단어가있는 일치를 선호하는 단일 하나를 선택합니다. 조각 기반 헤드 라인 생성에서ts_headline쿼리 일치를 찾아 각 일치를 분할파편maxwords각각 단어, 더 많은 쿼리 단어가있는 조각을 선호하고 가능하면스트레칭주변 단어를 포함하는 조각. 따라서 쿼리 일치가 스포츠 토토 사이트의 큰 섹션에 걸쳐 있거나 여러 일치를 표시하는 것이 바람직한 경우 조각 기반 모드는 더 유용합니다.minwords스포츠 토토 사이트의 단어가 표시됩니다.

예 :

ts_headline ( '영어',

ts_headlineA가 아닌 원본 스포츠 토토 사이트를 사용합니다TSVECTOR요약, 따라서 느리게 진행될 수 있고주의해서 사용해야합니다.