2012-05-15 4 views
6

मेरे पास pg_search multisearch का उपयोग कर मेरे रेल 3.2.3 ऐप पर काम कर रहा था। फिर मैंने this post. में nertzy (pg_search के लेखक) द्वारा प्रदान किए गए प्रारंभकर्ता को कार्यान्वित किया।tsearch शुरू करने के बाद pg_search multisearch के साथ त्रुटि, ट्रिग्राम

PG::Error: ERROR: operator does not exist: text % unknown 
LINE 1: ... ((coalesce("pg_search_documents"."content", '')) % 'searchterm... 
                  ^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 

मेरा विचार इस कोड के साथ प्रदान की गई है:

<%= @pg_search_documents.each do |pg_search_document| %> 
    <%= pg_search_document.searchable.title %> 
<% end %> 

मेरी सेटअप के बाकी पाया जा सकता है here. किसी भी मदद की बहुत सराहना कर रहा है अब जब मैं एक खोज चलाने मैं निम्नलिखित त्रुटि मिलती है।

+0

क्या आपको इसका उत्तर मिला? मैं एक ही मुद्दे में भाग रहा हूँ। –

+0

हे जॉन। मैं याद करने की कोशिश कर रहा हूं, लेकिन मुझे लगता है कि मैंने ट्रिगर कार्यक्षमता को हटाकर इसे ठीक किया है (जो कुछ भी है)। तो इस पंक्ति को हटा रहा है: 'ट्रिगर => {} 'यह मेरे लिए तय है। – Gruntled

+0

हां, गहरी खुदाई मैंने पाया कि आपको काम करने के लिए ट्रिगर पैकेज स्थापित करना होगा। Pg_search पृष्ठ पर इसका कुछ दस्तावेज है। –

उत्तर

11

मैं भी इससे पहले इस समस्या में भाग गया। बस किसी और को जो मुसीबत में चल रहा हो सकता है के लिए स्पष्ट करने के लिए ... यहाँ विस्तार स्थापित करना बताया गया है:

  1. bundle exec rails g migration add_trigram_extension 
    
  2. अपना माइग्रेशन में चलाकर एक नया माइग्रेशन बनाएँ, निम्न पेस्ट कोड:

    def up 
        execute "create extension pg_trgm" 
    end 
    
    def down 
        execute "drop extension pg_trgm" 
    end 
    
  3. bundle exec rake db:migrate

  4. साथ माइग्रेशन चलाएं

यह मेरे लिए स्थानीय रूप से काम करता है। कुछ एक्सटेंशन या कॉन्फ़िगरेशन जिन्हें आप pg_search के साथ उपयोग कर सकते हैं पोस्टग्रेज़ के नए संस्करणों की आवश्यकता है। Heroku पर कुछ एक्सटेंशन का उपयोग करने के लिए, आपको एक dev डेटाबेस का उपयोग करने की आवश्यकता हो सकती है।

अद्यतन: यह मेरी समझ है कि उसकेोकू ने रोलिंग अपग्रेड जारी किए हैं और अब हर कोई डिफ़ॉल्ट रूप से पीजी का एक नया संस्करण चला रहा है। उपर्युक्त को आपके डेटाबेस को अपग्रेड करने की आवश्यकता के बिना Heroku पर काम करना चाहिए।

+2

मैं pg_search का लेखक और रखरखाव हूं, और @stephenalexbrowne क्या कहता है बिल्कुल सही है। अधिक जानकारी https://github.com/Casecommons/pg_search/wiki/Installing-Postgres-Contrib-Modules – nertzy

+0

@nertzy पर उपलब्ध है, मैंने टी का पालन किया है और यह स्थानीय रूप से और हेरोोकू पर 'पीजी :: त्रुटि के साथ टूटता है : त्रुटि: ऑपरेटर मौजूद नहीं है: पाठ% अज्ञात 'त्रुटि। मैं साझा डीबी पर हूं जो ट्रिगर पैकेज प्रदान करता है और मेरे पास ट्रिग्राम पैकेज के साथ होमब्रू के माध्यम से पीजी स्थापित है। – Simpleton

+0

@ सिंपलटन आमतौर पर आपको 'टेक्स्ट% टेक्स्ट' जैसा कुछ दिखाई देगा, न कि 'टेक्स्ट% अज्ञात'। शायद आप https://github.com/Casecommons/pg_search/issues पर कोई समस्या खोल सकते हैं और अपनी क्वेरी में पेस्ट कर सकते हैं? – nertzy

संबंधित मुद्दे