그래서 다음 jsonb
과 같은 항목 이있는 열이 있습니다 : https://pastebin.com/LxJ8rKk4
전체 jsonb 열에서 전체 텍스트 검색을 구현하는 방법이 있습니까?
그래서 다음 jsonb
과 같은 항목 이있는 열이 있습니다 : https://pastebin.com/LxJ8rKk4
전체 jsonb 열에서 전체 텍스트 검색을 구현하는 방법이 있습니까?
답변:
PostgreSQL 10 은 JSONB에서 전체 텍스트 검색을 소개합니다
CREATE INDEX ON table
USING gin ( to_tsvector('english',jsondata) );
JSON의 새로운 FTS 인덱싱은 구문 검색과 함께 작동하며 JSON 마크 업과 키를 모두 건너 뜁니다.
그것이 실제적인지 여부는 분명하지 않지만 다음과 같이 할 수 있습니다.
CREATE TABLE t
(
id SERIAL PRIMARY KEY,
the_data jsonb
) ;
CREATE INDEX idx_t_the_data_full_text
ON t
USING gist ( (to_tsvector('English', the_data::text))) ;
그런 다음 쿼리하십시오.
SELECT
the_data
FROM
t
WHERE
to_tsvector('English', the_data::text) @@ plainto_tsquery('English', 'Action') ;
이것은 또한 값 뿐만 아니라 모든 객체 키를 찾을 수 있습니다 . 그리고 당신은 얼마나 많은 텍스트로 제한됩니다
여기 dbfiddle