2009-10-18 7 views
10

मैं तीन अक्षरों या उससे कम शब्दों वाले शब्दों को पुनर्प्राप्त करने के लिए अपनी पूर्ण पाठ खोज (बुलियन मोड में) प्राप्त करने का प्रयास कर रहा हूं।तीन या उससे कम अक्षरों वाले शब्दों के लिए MySQL पूर्ण पाठ खोज

वर्तमान में, अगर मैं "एनबीए" जैसे कुछ खोजता हूं, तो मुझे कोई परिणाम नहीं मिलते हैं।

हालांकि, अगर मैं खोज शब्द में वाइल्ड कार्ड ऑपरेटर "*" जोड़ता हूं, तो मुझे परिणाम मिलते हैं।

मैंने यह भी पढ़ा कि आप my.ini में तीन शब्द सीमा को हटा सकते हैं, लेकिन मुझे आश्चर्य है कि फ्लाई पर ऐसा करने का बेहतर तरीका है या नहीं।

उत्तर

16

पुस्तिका का यह भाग आपको पसंद आ सकता: 11.8.6. Fine-Tuning MySQL Full-Text Search (यह के एक हिस्से के हवाले से):

न्यूनतम और शब्द ft_min_word_len और ft_max_word_len द्वारा परिभाषित कर रहे अनुक्रमित करने के लिए की अधिकतम लंबाई सिस्टम चर डिफ़ॉल्ट न्यूनतम मान चार वर्ण है; डिफ़ॉल्ट अधिकतम संस्करण निर्भर है। यदि आप या तो मान बदलते हैं, तो आपको अपने FULLTEXT अनुक्रमणिका का पुनर्निर्माण करना होगा।
उदाहरण के लिए, यदि आप तीन अक्षर शब्द खोजने योग्य नहीं करना चाहते हैं, तो आप ft_min_word_len चर एक विकल्प फ़ाइल में निम्नलिखित लाइनों रख कर सेट कर सकते हैं:

[mysqld] 
ft_min_word_len=3 

तो फिर तुम सर्वर और पुनरारंभ करना होगा अपने FULLTEXT अनुक्रमणिका का पुनर्निर्माण करें।

(आप उस पृष्ठ को पढ़ना चाहिए, और अधिक जानकारियां मैं कॉपी-पेस्ट नहीं किया ;-) के लिए)

+0

धन्यवाद पास्कल, मैं पहले से ही एक ही पढ़ा है, विचार मेरे पास करने के लिए है यह एक PHP फ़ंक्शन के साथ है जो खोज वाक्यांश की लंबाई की जांच करता है और वाइल्डकार्ड * संशोधक को जोड़ता है यदि यह ft_min_word_len से कम है, तो यह सोचकर कि इसके बारे में जाने का बेहतर तरीका है ... –

+0

ओह, क्षमा करें, नहीं वह समझलो ;; मुझे इसके बारे में बहुत कुछ पता नहीं है ... यकीन नहीं है कि यह अच्छा प्रदर्शन होगा, हालांकि; एक sidenote के रूप में: कुछ बाहरी अनुक्रमण/खोज इंजन, जैसे solr या स्फिंक्स का उपयोग करने के बारे में क्या? –

+0

धन्यवाद, मैंने स्फिंक्स के बारे में सुना है लेकिन अभी तक मेरे सिर को लपेटने का समय नहीं है, जल्द ही इसमें देखेंगे –

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