পোস্টগ্রিসের সাথে আমি কীভাবে একটি জেসনব কলামে একটি পূর্ণ-পাঠ্য অনুসন্ধান ব্যবহার করতে পারি?


13

সুতরাং আমার কাছে একটি jsonbকলাম রয়েছে যার এগুলির মতো এন্ট্রি রয়েছে: https://pastebin.com/LxJ8rKk4

পুরো জেসনব কলামে একটি পূর্ণ-পাঠ্য অনুসন্ধান কার্যকর করার কোনও উপায় আছে কি?

উত্তর:


15

PostgreSQL 10+

পোস্টগ্রেএসকিউএল 10 জেএসএনবি-তে সম্পূর্ণ পাঠ্য অনুসন্ধানের সূচনা করে

CREATE INDEX ON table
   USING gin ( to_tsvector('english',jsondata) );

জেএসএনে নতুন এফটিএস সূচীকরণ বাক্যাংশ অনুসন্ধানের সাথে কাজ করে এবং জেএসএন-মার্কআপ এবং কী উভয় ছাড়িয়ে যায়।


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') ;

মনে রাখবেন, এই হবে এছাড়াও আপনার সব বস্তুর এটি কী না শুধুমাত্র মান । এবং আপনি কত পাঠ্য সীমাবদ্ধ থাকবেন

এখানে ডিবিফিডল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.