12.9. 텍스트 검색을위한 우선 토토 캔 유형#

전체 텍스트 검색 속도를 높이는 데 사용할 수있는 두 가지 종류의 토토 캔가 있습니다 :andgist. 토토 캔는 전체 텍스트 검색에 필수적이지 않지만 열이 정기적으로 검색되는 경우 일반적으로 색인이 바람직합니다.

그러한 색인을 만들려면 다음 중 하나를 수행하십시오.

색인 생성이름on테이블gin 사용 ();

GIN (Generalized Index) 기반 토토 캔를 만듭니다. 그만큼TSVECTOR타입.

색인 생성이름on테이블GIST 사용 ([기본값 | tsvector_ops (siglen =번호));

gist (일반 검색 트리) 기반 인덱스를 만듭니다. 그만큼TSVECTOR또는tsquery타입. 선택적 정수 매개 변수Siglen시그니처 길이를 바이트로 결정합니다 (자세한 내용은 아래 참조).

진 토토 캔는 선호하는 텍스트 검색 색인 유형입니다. 반전 토토 캔로서, 그들은 각 단어 (Lexeme)에 대한 토토 캔 항목을 포함하고 일치하는 위치의 압축 목록이 포함되어 있습니다.TSVECTOR값은 무게 라벨이 아닙니다. 따라서 가중치와 관련된 쿼리를 사용할 때 테이블 행이 다시 확인됩니다.

GIST 지수는Lossy, 즉 인덱스가 허위 일치를 생성 할 수 있으며, 그러한 허위 일치를 제거하려면 실제 테이블 행을 확인해야합니다. (PostgreSQL필요할 때 자동으로이를 수행합니다.) GIST 토토 캔는 각 문서가 고정 길이 서명으로 토토 캔에 표시되므로 손실됩니다. 바이트의 시그니처 길이는 선택적 정수 매개 변수의 값에 의해 결정됩니다.Siglen. 기본 서명 길이 (Siglen지정되지 않음)는 124 바이트이고 최대 서명 길이는 2024 바이트입니다. 시그니처는 각 단어를 N- 비트 문자열로 단일 비트로 해싱하여 생성되며,이 모든 비트는 N-BIT 문서 서명을 생성하기 위해 함께 또는 함께 함께 사용합니다.

GIST 지수를 덮을 수 있습니다. 즉, 사용포함절. 포함 된 열에는 GIST 연산자 클래스가없는 데이터 유형을 가질 수 있습니다.

손실은 거짓 일치로 판명되는 테이블 레코드의 불필요한 페치로 인해 성능 저하를 유발합니다. 테이블 레코드에 대한 임의의 액세스는 느리기 때문에 GIST 인덱스의 유용성을 제한합니다.

참고토토 캔 빌드 시간을 종종 증가시켜 개선 할 수 있습니다maintenance_work_mem, whilegist토토 캔 빌드 시간은 해당 매개 변수에 민감하지 않습니다.

대형 컬렉션의 파티셔닝 및 GIN 및 GIST 인덱스의 적절한 사용을 통해 온라인 업데이트로 매우 빠른 검색을 구현할 수 있습니다. 파티션은 테이블 상속을 사용하여 데이터베이스 수준에서 또는 서버를 통해 문서를 배포하고 외부 검색 결과를 수집하여 수행 할 수 있습니다 (예 : via외국 데이터액세스. 순위 기능은 로컬 정보 만 사용하기 때문에 후자는 가능합니다.

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면