이전 섹션의 예제는 전체 텍스트를 설명했습니다 단순한 상수 줄을 사용하여 일치합니다. 이 섹션에서는 방법을 보여줍니다 테이블 데이터 검색, 선택적으로 인덱스를 사용합니다.
색인이없는 전체 텍스트 검색을 수행 할 수 있습니다. 에이 인쇄하는 간단한 쿼리제목단어가 포함 된 각 행친구inBody필드 IS :
제목을 선택하십시오 pgweb에서 TO_TSVECTOR ( '영어', 바디) @@ TO_TSQUERY ( 'English', 'Friend');
이것은 또한와 같은 관련 단어를 찾을 것입니다.친구and친절한, 이 모든 것이 동일한 정규화 된 Lexeme으로 축소되므로
위의 쿼리는를 지정합니다.영어구성을 사용하여 구문 분석하고 줄을 정규화하십시오. 또는 우리는 그것을 생략 할 수 있습니다 구성 매개 변수 :
제목을 선택하십시오 pgweb에서 where to_tsvector (body) @@ to_tsquery ( 'friend');
이 쿼리는에 의해 설정된 구성을 사용합니다.default_text_search_config.
더 복잡한 예는 가장 최근 10 개를 선택하는 것입니다. 포함 된 문서Createand테이블in제목또는body:
제목을 선택하십시오 pgweb에서 where to_tsvector (title || ''|| body) @@ to_tsquery ( 'Create & Table') last_mod_date desc 리미트 10; 주문
명확성을 위해 우리는를 생략했습니다.Coalesce
필요한 기능 호출
포함 된 행을 찾으려면null하나
두 분야 중.
이 쿼리는 범퍼카 토토없이 작동하지만 대부분은 작동합니다 응용 프로그램은 아마도이 접근법이 너무 느리게 발견 될 것입니다 가끔 임시 검색의 경우. 텍스트 검색의 실질적인 사용 일반적으로 색인 생성이 필요합니다.
우리는 a를 만들 수 있습니다진색인 (섹션 12.9) 속도 UP 텍스트 검색 :
gin을 사용하여 pgweb에서 인덱스 pgweb_idx 생성 (to_tsvector ( 'English', Body));
2의 2- 관점 버전에 주목하십시오.to_tsvector
사용됩니다. 텍스트 검색 만
구성 이름을 지정하는 함수에서 사용할 수 있습니다.
표현 범퍼카 토토 (토토 사이트 순위 PostgreSQL). 범퍼카 토토 내용이 있어야하기 때문입니다
의 영향을받지 않음default_text_search_config.
영향을 받으면 범퍼카 토토 내용이 일치하지 않을 수 있습니다.
다른 항목에 포함될 수 있기 때문에TSVECTOR다른 텍스트로 생성 된 것
검색 구성, 어느 쪽을 추측 할 방법이 없습니다.
그랬어. 그러한 것을 버리고 복원하는 것은 불가능합니다.
정확하게 색인.
이기 때문에to_tsvector
위의 색인에만 사용되었습니다
2의 2- 태도 버전을 사용하는 쿼리 참조to_tsvector
같은
구성 이름은 해당 범퍼카 토토를 사용합니다. 즉,WHERE TO_TSVECTOR ( '영어', 바디) @@ 'a &
비'색인을 사용할 수 있지만어디서
to_tsvector (body) @@ 'a & b'할 수 없습니다. 이것은 그것을 보장합니다
범퍼카 토토는 사용 된 것과 동일한 구성으로 만 사용됩니다.
범퍼카 토토 항목 생성.
보다 복잡한 표현 범퍼카 토토를 설정할 수 있습니다. 구성 이름이 다른 열에서 지정되는 경우 예 :
gin을 사용하여 pgweb에서 인덱스 pgweb_idx 생성 (to_tsvector (config_name, body));
여기서config_name는 열입니다 그만큼pgweb테이블. 이것은 혼합을 허용합니다 기록하는 동안 동일한 인덱스의 구성 각 인덱스 항목에 구성이 사용되었습니다. 이것은 될 것입니다 예를 들어, 문서 컬렉션에 포함 된 경우 유용합니다 다른 언어로 된 문서. 다시 한 번 쿼리 인덱스 사용은 일치하도록 표현되어야합니다 (예 :where to_tsvector (config_name, body) @@ 'a & 비'.
범퍼카 토토는 열을 연결할 수 있습니다 :
gin을 사용하여 pgweb에서 인덱스 pgweb_idx 생성
또 다른 접근 방식은 별도를 만드는 것입니다tsvector열의 출력을 유지하려면 열to_tsvector
. 이 예제는 연결입니다
의제목andBody, 사용Coalesce
한 필드가 여전히 보장되도록합니다
다른 사람이 범퍼카 토토 됨null:
ALTER TABLE PGWEEB 열 ADD TEXTSEARTHABLE_INDEX_COL TSVECTOR; pgweb set textsearchable_index_col = 업데이트 to_tsvector ( '영어', Coalesce (title, '') || ''|| Coalesce (Body, '');
그러면 우리는 a를 만듭니다.진검색 속도를 높이는 색인 :
gin (textsearchable_index_col)을 사용하여 pgweb에서 index textsearch_idx 만들기;
이제 우리는 빠른 전체 텍스트 검색을 수행 할 준비가되었습니다 :
제목을 선택하십시오 pgweb에서 여기서 textsearchable_index_col @@ to_tsquery ( 'Create & Table') last_mod_date desc 리미트 10; 주문
별도의 열을 사용하여 저장할 때TSVECTOR표현은 만들어야합니다 유지하려는 방아쇠TSVECTOR열 언제든지 현재제목또는Body변경.섹션 12.4.3그렇게하는 방법을 설명합니다.
별도의 컬럼 접근법의 한 가지 장점
표현 범퍼카 토토는 명시 적으로 필요하지 않다는 것입니다.
텍스트 검색 구성을 쿼리로 지정합니다.
색인을 사용하십시오. 위의 예에서 볼 수 있듯이 쿼리
의존 할 수 있습니다default_text_search_config. 또 다른 장점은
검색이 더 빠를 필요가 없기 때문에 더 빠를 것입니다.
redoto_tsvector
전화
범퍼카 토토 일치를 확인하십시오. (이것은 요점을 사용할 때 더 중요합니다
진 범퍼카 토토보다 범퍼카 토토; 보다섹션 12.9.)
그러나 표현-범퍼카 토토 접근법은 설정이 더 간단합니다.
이후로 디스크 공간이 적습니다.TSVECTOR표현이 저장되지 않았습니다
명시 적으로.