이전 섹션의 예제는 단순한 상수 문자열을 사용하여 전체 텍스트 매칭을 보여주었습니다. 이 섹션은 선택적으로 인덱스를 사용하여 테이블 데이터를 검색하는 방법을 보여줍니다.
색인없이 전체 텍스트 검색을 수행 할 수 있습니다. 인쇄하는 간단한 쿼리제목
단어가 포함 된 각 행의친구
inBody
필드 IS :
제목을 선택하십시오 pgweb에서 TO_TSVECTOR ( '영어', 바디) @@ TO_TSQUERY ( 'English', 'Friend');
이것은 또한와 같은 관련 단어를 찾을 것입니다.친구
and친절한
,이 모든 것이 동일한 정규화 된 lexeme로 축소되므로
위의 쿼리는를 지정합니다.영어
구성을 사용하여 문자열을 구문 분석하고 정상화해야합니다. 또는 구성 매개 변수를 생략 할 수 있습니다.
제목을 선택하십시오 pgweb에서 where to_tsvector (body) @@ to_tsquery ( 'friend');
이 쿼리는에 의해 설정된 구성을 사용합니다.default_text_search_config.
더 복잡한 예는 포함 된 가장 최근의 문서를 선택하는 것입니다Create
and테이블
in제목
또는Body
:
제목을 선택하십시오 pgweb에서 where to_tsvector (title || ''|| body) @@ to_tsquery ( 'Create & Table') Last_mod_date desc로 주문하십시오 제한 10;
명확성을 위해 우리는를 생략했습니다.Coalesce
함수를 포함하는 행을 찾는 데 필요한 함수 호출null
두 필드 중 하나에서.
이러한 쿼리는 사설 토토 사이트없이 작동하지만 대부분의 애플리케이션은 때때로 임시 검색을 제외 하고이 접근 방식이 너무 느리게 발견됩니다. 텍스트 검색의 실제 사용은 일반적으로 사설 토토 사이트 생성이 필요합니다.
우리는 a를 만들 수 있습니다.진index (섹션 12.9) 텍스트 검색 속도를 높이려면 :
gin을 사용하여 pgweb에서 인덱스 pgweb_idx 생성 (to_tsvector ( 'English', Body));
|to_tsvector
가 사용됩니다. 구성 이름을 지정하는 텍스트 검색 기능 만 표현식 사설 토토 사이트에서 사용할 수 있습니다 (토토 캔 : 문서 : 14 : 11.7. 표현에 대한 색인). 사설 토토 사이트 내용은의 영향을받지 않아야하기 때문입니다.default_text_search_config. 영향을받은 경우 다른 항목에 포함될 수 있기 때문에 색인 내용이 일치하지 않을 수 있습니다.TSVECTOR
다른 텍스트 검색 구성으로 생성되었으며 어느 쪽인지 추측 할 방법이 없습니다. 그러한 색인을 올바르게 덤프하고 복원하는 것은 불가능합니다.
|to_tsvector
위의 사설 토토 사이트에 사용되었으며, 2- 연락 버전을 사용하는 쿼리 참조 만to_tsvector
동일한 구성 이름을 가진 이름이 해당 사설 토토 사이트를 사용합니다. 즉,where to_tsvector ( 'English', Body) @@ 'a & b'
색인을 사용할 수 있지만WHERE TO_TSVECTOR (BODY) @@ 'A & B'
할 수 없습니다. 이렇게하면 사설 토토 사이트 항목을 생성하는 데 사용되는 동일한 구성으로 만 사설 토토 사이트가 사용됩니다.
구성 이름이 다른 열로 지정되는 더 복잡한 표현식 사설 토토 사이트를 설정할 수 있습니다 (예 :.
gin (to_tsvector (config_name, body))를 사용하여 pgweb에서 인덱스 pgweb_idx 생성;
여기서config_name
pgweb
테이블. 이를 통해 각 인덱스 항목에 사용 된 구성을 기록하면서 동일한 인덱스에서 혼합 구성이 가능합니다. 예를 들어, 문서 컬렉션에 다른 언어로 문서가 포함 된 경우에 유용합니다. 다시, 인덱스를 사용하기위한 쿼리는 일치하도록 표현되어야합니다 (예 :WHERE TO_TSVECTOR (config_name, body) @@ 'a & b'
.
사설 토토 사이트는 열을 연결할 수 있습니다 :
gin을 사용하여 pgweb에서 인덱스 pgweb_idx 생성
또 다른 접근 방식은 별도를 만드는 것입니다TSVECTOR
출력을 유지하려면 열to_tsvector
. 이 열을 소스 데이터로 최신 상태로 유지하려면 저장된 생성 열을 사용하십시오. 이 예제는의 연결입니다.제목
andBody
, 사용Coalesce
한 필드가 여전히 색인이 유지되도록하려면NULL
:
ALTER TABLE PGWEB 열 textsearchable_index_col tsvector를 추가하십시오 항상 생성됩니다 (To_tsvector ( 'English', Coalesce (title, ',') || ''|| Coalesce (Body, ''))가 저장된;
그러면 우리는 a를 만듭니다.gin검색 속도를 높이는 색인 :
gin (textsearchable_index_col)을 사용하여 pgweb에서 index textsearch_idx 만들기;
이제 우리는 빠른 전체 텍스트 검색을 수행 할 준비가되었습니다 :
제목을 선택하십시오 pgweb에서 여기서 textsearchable_index_col @@ to_tsquery ( 'Create & Table') Last_mod_date desc로 주문하십시오 제한 10;
표현식 사설 토토 사이트에 대한 별도의 열 접근법의 한 가지 장점은 사설 토토 사이트를 사용하기 위해 쿼리의 텍스트 검색 구성을 명시 적으로 지정할 필요가 없다는 것입니다. 위의 예에서 볼 수 있듯이 쿼리는에 의존 할 수 있습니다.default_text_search_config
. 또 다른 장점은 검색이 더 빨라질 것이라는 점입니다.to_tsvector
사설 토토 사이트 일치를 확인하기위한 호출. (이것은 GIN 지수보다 GIST 지수를 사용할 때 더 중요합니다. 참조섹션 12.9.) Expression-Index 접근법은 설정하기가 더 간단하지만 이후로 디스크 공간이 필요합니다.TSVECTOR
표현은 명시 적으로 저장되지 않았습니다.
문서에 올바른 것이 없으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면