ฉันจะใช้การค้นหาข้อความแบบเต็มในคอลัมน์ jsonb กับ Postgres ได้อย่างไร


คำตอบ:



3

คุณสามารถทำได้แม้ว่าการปฏิบัตินั้นจะไม่ชัดเจนก็ตาม:

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 ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.