2009-12-30 11 views
5

अक्षम करना मैं कुछ दस्तावेज है कि इस तरह के रूप में radio/tested दृश्यों कि मैं की तरहPostgreSQL 8.4 tsvector पार्सर के `file` टोकन प्रकार

select * from doc 
where to_tsvector('english',body) @@ to_tsvector('english','radio') 

दुर्भाग्य से प्रश्नों में हिट वापस जाने के लिए चाहते हैं को शामिल किया है, डिफ़ॉल्ट पार्सर radio/tested एक के रूप में लेता है file टोकन (विंडोज वातावरण में होने के बावजूद), इसलिए यह उपर्युक्त क्वेरी से मेल नहीं खाता है। जब मैं ts_debug चलाता हूं, तो जब मैं देखता हूं कि इसे फ़ाइल के रूप में पहचाना जा रहा है, और लेक्सम होने के बजाय दो लेक्सम radio और test के बजाय समाप्त होता है।

क्या पार्सर को कॉन्फ़िगर करने का कोई तरीका है file टोकन देखने के लिए? मैंने

ALTER TEXT SEARCH CONFIGURATION public.english 
    DROP MAPPING FOR file; 

... लेकिन यह ts_debug के आउटपुट को नहीं बदला। यदि file को अक्षम करने का कोई तरीका है, या कम से कम यह file दोनों को पहचानता है और सभी शब्दों को लगता है कि वे निर्देशिका नामों को रास्ते में बनाते हैं, या यदि हाइफ़न या रिक्त स्थान के रूप में स्लेश का इलाज करने का कोई तरीका है (बिना regexp_replace का प्रदर्शन हिट खुद को आईएनजी) जो वास्तव में सहायक होगा।

उत्तर

5

मुझे लगता है कि आप जो चाहते हैं उसे करने का एकमात्र तरीका अपने स्वयं के पार्सर बनाना है :-(wparser_def.c को एक नई फ़ाइल में कॉपी करें, पार्स टेबल (actionTPS_Base और उसके बाद वाले) से हटाएं, जो संबंधित हैं फ़ाइलें (TPS_InFileFirst, TPS_InFileNext आदि), और आप तैयार किया जाना चाहिए। मुझे लगता है कि मुख्य कठिनाई बना रही है मॉड्यूल PostgreSQL के सी मुहावरा (PG_FUNCTION_INFO_V1 और इसी तरह) के अनुरूप हैं। एक उदाहरण के लिए contrib/test_parser/ पर एक नज़र डालें।

+0

ओह भगवान। .. यह दुर्भाग्यपूर्ण है। उत्तर देने के लिए धन्यवाद और सुझावों के लिए, मुझे यह जानकर खुशी हो रही है कि इसमें क्या शामिल है। – Kev

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