2016-09-27 14 views
8

स्वीकार करने के लिए मैं एक पूर्ण पाठ खोज बनाना चाहता हूं जो क्वेरी पर इमोजी स्वीकार करता है, या पाठ पर खोजने के लिए किसी अन्य प्रकार की अनुक्रमणिका स्वीकार करता है। उदाहरण के लिए, मेरे पास यह टेक्स्ट है: Playa @CobolIquique h' और PostgreSQL इसे अजीब रूप से इमोजी पर पार्स करता है।पोस्टग्रेर्स - पूर्ण पाठ खोज emojis

डिबगिंग, SELECT * FROM ts_debug('english','Playa @CobolIquique h'); का उपयोग करते हुए मैं निम्न परिणाम है:

Results 1

और मैं क्यों टोकन एक अंतरिक्ष प्रतीक माना जाता है पता नहीं है। अगर मैं पार्सर SELECT * FROM ts_parse('default', 'Playa @CobolIquique h'); डीबग करता हूं तो मुझे वही टोकन मिलते हैं और टोकन प्रकार ts_token_type('default') के साथ कोई इमोजी प्रकार (या कुछ समान नहीं) होता है। तो, मैं रिक्त स्थान के साथ सही ढंग से स्ट्रिंग को विभाजित करने के लिए एक पार्सर कैसे बना सकता हूं और इमोजी को रिक्त स्थान के रूप में नहीं मानता? या मैं एक टेक्स्ट इंडेक्स कैसे बना सकता हूं जो प्रश्नों पर इमोजी का उपयोग कर सकता है?

+0

मुझे पूर्ण-पाठ खोज में उपयोग नहीं किया जाता है, लेकिन क्या आपने विभिन्न शब्दकोशों (जैसे स्नोबॉल) के साथ प्रयास किया है? Https://www.postgresql.org/docs/current/static/textsearch-durs.html देखें कि आपको एक शब्दकोश को कस्टमाइज़ करना होगा (पिछले लिंक में उदाहरण देखें)। – pietrop

+0

हां, मैंने अलग-अलग डिक्शनरीज़ (मैंने पहले से ही अपनी ज़रूरतों के साथ एक बना दिया है) के साथ प्रयास किया है, लेकिन समस्या पहले चरण है, वह पार्सर है): – FeanDoe

+0

क्या आपने 'टेक्स्ट खोज खोज PARERER' और 'वैकल्पिक टेक्स्ट खोज PARERER' के साथ प्रयास किया है '? https://www.postgresql.org/docs/9.6/static/sql-createtsparser.html – pietrop

उत्तर

1

एक नया पार्सर बनाने के लिए, जो कि डिफ़ॉल्ट से अलग है, आपको सी प्रोग्रामर होना चाहिए और आपको अपना खुद का PostgreSQL extension लिखना चाहिए। एक उदाहरण आप pg_tsparser मॉड्यूल जांच कर सकते हैं के रूप में

start_function(); 
gettoken_function(); 
end_function(); 
lextypes_function(); 
headline_function(); // optional 

: यह एक्सटेंशन निम्नलिखित कार्यों को परिभाषित करना चाहिए।

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