/ / PostgreSQL में फुलटेक्स्ट को उपयोगी कैसे बनाएं? - postgresql

PostgreSQL में फुलटेक्स्ट खोज कैसे उपयोगी करें? - postgresql

मेरे पास एक रूसी शब्दकोष है जिसका नाम 8.4 है।

मैं पूर्ण खोज का उपयोग करने की कोशिश करता हूं, लेकिन कुछ परेशानियां हैं।

  1. मुझे कोई परिणाम नहीं मिल रहा है क्योंकि पति 4-5symbols द्वारा शब्द खोजने की कोशिश कर रहा है। उदाहरण के लिए:

    select * from parcels_temp where name_dispatcher @@ to_tsquery("Нику");
    

    परिणाम प्राप्त करें: 0 पंक्तियाँ।

    select * from parcels_temp where name_dispatcher @@ to_tsquery("Никуд");
    

    परिणाम प्राप्त करें: 2 पंक्तियाँ। यह सही है।

  2. मैं शब्दकोश में निहित शब्दों से खोज करने की कोशिश करता हूं। मैं इस मामले में क्या करने जा रहा हूं? मैं PostgreSQL में शब्दकोश कैसे अपडेट कर सकता हूं?

  3. इसके लिए कॉलम बनाना होगा tsvector या मैं उपयोग कर सकते हैं to_tsvector समारोह मैं प्रश्न? या इसके और धीरे?

उत्तर:

उत्तर № 1 के लिए 1
  1. Postgresql indexer 3 वर्णों से छोटे तार को संसाधित नहीं करता है। यह सूचकांक आकार और पीढ़ी के समय को कम करने के लिए किया जाता है।

  2. जाहिर है, आपको कुछ नहीं मिलता। शब्दकोश को अपडेट करने, प्रलेखन का संदर्भ देने का तरीका है।

  3. Tsvector फ़ील्ड पर GIN इंडेक्स का उपयोग करें.


जवाब के लिए 0 № 2

1: डिफ़ॉल्ट रूप से, postgreSQL केवल पूरे शब्द से मेल खाता है। आप उपसर्ग मिलान करने का विकल्प चुन सकते हैं:

select * from parcels_temp where name_dispatcher @@ to_tsquery("Нику:*");

देख: https://www.postgresql.org/docs/9.5/static/textsearch-controls.html

3: आप उस पर एक कॉलम और GIN इंडेक्स बना सकते हैं, या आप बिना कॉलम बनाए इंडेक्स बना सकते हैं। मुझे लगता है कि प्रदर्शन के मामले में वे समान हैं। जानकारी के लिए, देखें: https://www.postgresql.org/docs/9.5/static/textsearch-tables.html