से सही परिणाम प्राप्त नहीं कर सकते हैं मैं ब्राज़ीली पुर्तगाली भाषा में एक साधारण लेख वेबसाइट विकसित कर रहा हूं। खोज सुविधा पूर्ण-पाठ खोज पर आधारित है, लेकिन यह अपेक्षित परिणामों को वापस नहीं कर रही है।पोस्टग्रे पूर्ण-पाठ खोज
मैंने इसे पोस्टग्रेस्क्ल पर बनाया है। यहाँ सरलीकृत तालिका है:
Artigos
-id
-title -- article title
-intro -- article introduction
-content -- article body
-publishdate -- date of launch
-artigosts -- this will work as our fts index.
तालिका बनाने के बाद, मैं भाग गया:
UPDATE artigos SET artigosts =
setweight(to_tsvector('pg_catalog.portuguese', coalesce(title,'')), 'A') ||
setweight(to_tsvector('pg_catalog.portuguese', coalesce(intro,'')), 'B') ||
setweight(to_tsvector('pg_catalog.portuguese', coalesce(content,'')), 'C');
CREATE INDEX artigosts_idx ON artigos USING gist (artigosts);
CREATE TRIGGER artigosts_tg
BEFORE INSERT OR UPDATE ON artigos
FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger('artigosts', 'pg_catalog.portuguese', 'title', 'intro', 'content');
हाँ, मैं इन खोजों के लिए सरल weightning उपयोग करना चाहते हैं। एक ट्रिगर को गति देने के लिए एक इंडेक्स बनाया, इसलिए मैं इंडेक्स रीमेकिंग के बारे में चिंता किए बिना सम्मिलित और अपडेट कर सकता हूं।
ठीक है, मेरी समझ के अनुसार, यह सबकुछ ठीक है। लेकिन परिणाम नहीं हैं। एक साधारण उदाहरण।
मान लें कि मेरे पास है "... banco de dados ... no banco ..." एक लेख सामग्री के रूप में। जब मैं करता हूं:
SELECT title, intro, content FROM artigos WHERE plainto_tsquery('banco de dados') @@ artigosts;
यह एक खाली सेट देता है। मैंने ts_vector कॉलम की जांच की और भविष्यवाणी 'बैंक' और 'पिता' देखा। लेकिन मैं अभी भी समझ नहीं पा रहा हूं कि यह उल्लिखित आलेख वाली पंक्ति को वापस क्यों नहीं करता है।
क्या कोई इस प्रश्न में प्रकाश ला सकता है?
सर्वर पर उपलब्ध विभिन्न कॉन्फ़िगरेशन के साथ खेल रहा था। मुझे लगता है कि यह उपलब्ध शब्दकोशों और शब्द स्टॉप से एक मुद्दा है।क्या किसी को पता है कि कैसे ऊपरी वर्ण (जैसे áéóôú) वैक्टर को मैप करना है? उत्तर के लिए – Dave