2013-08-11 2 views
4

이제 PostgreSQL 9.2.3에서 전체 텍스트 검색에 대해 배우고 있습니다. 그러나, 나는 문제가있다. 나는이 예제를 실행 :PostgreSQL에서 전체 텍스트 검색

CREATE TABLE messages (title text,body text,tsv tsvector); 

CREATE TRIGGER tsvectorupdate 
BEFORE INSERT OR UPDATE ON messages FOR EACH ROW EXECUTE PROCEDURE 
tsvector_update_trigger(tsv, 'pg_catalog.english', title, body); 

INSERT INTO messages VALUES('title here', 'the body text is here'); 

불행하게도, 후 :

SELECT title, body FROM messages WHERE tsv @@ to_tsquery('title & body') 

내가 어떤 결과를 얻을 - 0 행이 돌아왔다. 왜 그런지 말해 줄 수 있니? PostgreSQL의 문서에 따르면 제대로 동작 할 것입니다.

쿼리로 'titl'과 'bodi'만 적절한 결과를 얻습니다. 왜?

답변

9

to_tsquery 유일한 인수가 영어로 표시되지 않는 기본 텍스트 검색 구성을 사용합니다. SQL에서

SELECT title, body FROM messages 
    WHERE tsv @@ to_tsquery('english', 'title & body') 

사용 SHOW default_text_search_config가 영어로 변경하는 텍스트 효과의 구성 및 SET default_text_search_config TO 'english' 무엇인지 볼 수 :

당신은 예상 된 결과를 얻기 위해 명시 적 텍스트 구성과 양식을 사용할 수 있습니다.

+0

Dan, 어떻게 다른 구성을 설치할 수 있습니까? 나는 중국어를 위해 그것을 사용할 필요가있다. – Growler