이전 섹션의 예에서는 전체 텍스트를 설명했습니다. 간단한 상수 문자열을 사용하여 일치합니다. 이 섹션에서는 다음 방법을 보여줍니다. 선택적으로 색인을 사용하여 테이블 데이터를 검색합니다.
색인 없이 전체 텍스트 검색이 가능합니다. 에이 를 인쇄하는 간단한 쿼리제목중 단어가 포함된 각 행친구그 안에본체필드는 다음과 같습니다:
제목 선택
pgweb에서
WHERE to_tsVector('english', body) @@ to_tsquery('english', 'friend');
    다음과 같은 관련 단어도 찾습니다.친구그리고친절한, 왜냐하면 이 모든 것이 동일한 정규화된 어휘로 축소되기 때문입니다.
위 쿼리는 다음을 지정합니다.영어구성은 구문 분석에 사용되며 문자열을 정규화합니다. 대안으로 우리는 구성 매개변수:
제목 선택
pgweb에서
어디에서 to_tsVector(body) @@ to_tsquery('friend');
    이 쿼리는 다음에 의해 설정된 구성을 사용합니다.default_text_search_config.
더 복잡한 예는 가장 최근의 10개를 선택하는 것입니다. 다음을 포함하는 문서생성그리고테이블에서제목또는본체:
제목 선택
pgweb에서
WHERE to_tsVector(title || ' ' || body) @@ to_tsquery('create & table')
ORDER BY last_mod_date DESC LIMIT 10;
    명확하게 하기 위해 다음을 생략했습니다.합체필요한 함수 호출
    다음을 포함하는 행을 찾으려면NULL하나로
    두 필드 중 하나입니다.
이러한 쿼리는 색인 없이도 작동하지만 대부분 응용 프로그램에서는 이 접근 방식이 너무 느리다는 것을 알게 될 것입니다. 가끔 임시 검색을 위해. 텍스트 검색의 실제 활용 일반적으로 색인을 생성해야 합니다.
우리는 만들 수 있습니다진색인 (섹션 12.9) 속도 향상 텍스트 검색까지:
gin(to_tsVector('english', body))을 사용하여 pgweb에서 pgweb_idx 인덱스 생성;
    다음의 2인수 버전에 주목하세요.to_ts벡터이 사용됩니다. 텍스트 검색만 가능
    구성 이름을 지정하는 함수는 다음에서 사용할 수 있습니다.
    표현식 인덱스(토토 사이트 순위 PostgreSQL). 이는 인덱스 내용이 다음과 같아야 하기 때문입니다.
    영향을 받지 않음default_text_search_config.
    영향을 받은 경우 인덱스 내용이 일치하지 않을 수 있습니다.
    다른 항목에는 다음이 포함될 수 있기 때문입니다.ts벡터12863_13059
다음의 두 인수 버전 때문에to_tsVector위의 색인에서만 사용되었습니다.
    의 2인수 버전을 사용하는 쿼리 참조to_ts벡터동일
    구성 이름은 해당 범퍼카 토토를 사용합니다. 즉,어디에서 to_tsVector('english', body) @@ 'a &
    비'색인을 사용할 수 있지만어디
    to_tsVector(body) @@ 'a & b'할 수 없습니다. 이는 다음을 보장합니다.
    인덱스는 다음과 같은 구성으로만 사용됩니다.
    색인 항목을 만듭니다.
더 복잡한 표현식 색인을 설정할 수 있습니다 여기서 구성 이름은 다른 열에 의해 지정됩니다. 예:
gin(to_tsVector(config_name, body))을 사용하여 pgweb에서 pgweb_idx 인덱스 생성;
어디에서config_name다음 열입니다.pgweb테이블. 이는 혼합을 허용합니다. 기록하는 동안 동일한 인덱스의 구성 구성은 각 색인 항목에 사용되었습니다. 이것은 예를 들어 문서 컬렉션에 다음이 포함된 경우 유용합니다. 다양한 언어로 된 문서. 다시 말하지만, 색인을 사용하려면 일치하는 문구를 사용해야 합니다. 예:어디에서 to_tsVector(config_name, body) @@ 'a & 비'.
색인은 열을 연결할 수도 있습니다:
gin(to_tsVector('english', title || ' ' || body)))을 사용하여 pgweb에서 pgweb_idx 인덱스 생성;
    또 다른 접근 방식은 별도의 계정을 생성하는 것입니다.ts벡터출력을 저장할 열to_tsVector. 이 예는 연결입니다.
    의제목그리고몸, 사용합체한 필드가 여전히 유지되도록 하기 위해
    다른 하나가 인덱싱될 때 색인 생성됨NULL:
ALTER TABLE pgweb ADD COLUMN textsearchable_index_col tsVector;
업데이트 pgweb SET textsearchable_index_col =
     to_tsVector('english', coalesce(title,'') || ' ' || coalesce(body,''));
    그런 다음 우리는 다음을 만듭니다진검색 속도를 높이는 색인:
gin(textsearchable_index_col)을 사용하여 pgweb에서 textsearch_idx 인덱스 생성;
이제 빠른 전체 텍스트 검색을 수행할 준비가 되었습니다.
제목 선택
pgweb에서
WHERE textsearchable_index_col @@ to_tsquery('생성 및 테이블')
ORDER BY last_mod_date DESC LIMIT 10;
    별도의 열을 사용하여 저장하는 경우ts벡터표현을 생성하려면 다음이 필요합니다. 를 유지하는 트리거ts벡터열 언제든지 현재제목또는몸변경사항.섹션 12.4.3그 방법을 설명합니다.
개별 열 접근 방식의 한 가지 장점은
    표현식 인덱스는 명시적으로 필요하지 않다는 것입니다.
    쿼리에 텍스트 검색 구성을 지정하려면
    인덱스를 활용해보세요. 위의 예에서 볼 수 있듯이 쿼리는
    의존할 수 있다default_text_search_config. 또 다른 장점은
    그럴 필요가 없기 때문에 검색이 더 빨라질 것입니다.
    다시 실행하세요to_tsVector호출
    범퍼카 토토 일치를 확인합니다. (이것은 GiST를 사용할 때 더 중요합니다.
    GIN 지수보다 지수; 참조섹션 12.9.)
    그러나 표현 범퍼카 토토 접근 방식은 설정이 더 간단하며
    이후 더 적은 디스크 공간이 필요합니다.ts벡터표현이 저장되지 않았습니다.
    명시적으로.