अगर आपको Fiat
चाहिए और 500
कहीं भी जहां आदेश मायने नहीं रखता, तब
SELECT * FROM models MATCH(name) AGAINST('+Fiat +500');
अगर आपको Fiat 500
. की आवश्यकता है एक साथ, फिर
SELECT * FROM models MATCH(name) AGAINST('+"Fiat 500"');
अगर आपको Fiat
चाहिए और शून्य या अधिक 500
, फिर
SELECT * FROM models MATCH(name) AGAINST('+Fiat 500');
अगर आपको 500
चाहिए और शून्य या अधिक Fiat
, फिर
SELECT * FROM models MATCH(name) AGAINST('Fiat +500');
इसे आज़माएं !!!
अद्यतन 2013-01-28 18:28 EDT
यहाँ FULLTEXT खोज के लिए डिफ़ॉल्ट सेटिंग्स हैं
mysql> show variables like 'ft%';
+--------------------------+----------------+
| Variable_name | Value |
+--------------------------+----------------+
| ft_boolean_syntax | + -><()~*:""&| |
| ft_max_word_len | 84 |
| ft_min_word_len | 4 |
| ft_query_expansion_limit | 20 |
| ft_stopword_file | (built-in) |
+--------------------------+----------------+
5 rows in set (0.00 sec)
mysql>
ध्यान दें कि ft_min_word_len डिफ़ॉल्ट रूप से 4 है। टोकन 500 लंबाई 3 है। इस प्रकार इसे बिल्कुल भी अनुक्रमित नहीं किया जाएगा। आपको तीन (3) चीजें करनी होंगी:
चरण 01:छोटे स्ट्रिंग टोकन के लिए कॉन्फ़िगर करें
इसे /etc/my.cnf
में जोड़ें
[mysqld]
ft_min_word_len = 1
चरण 02:mysql को पुनरारंभ करें
service mysql restart
STEP 03 :models
. में सभी इंडेक्स को फिर से इंडेक्स करें टेबल
आप बस FULLTEXT अनुक्रमणिका को छोड़ कर जोड़ सकते हैं
या इसे चरणों में करें और देखें कि यह पहले से कितना बड़ा हो जाएगा
CREATE TABLE models_new LIKE models;
ALTER TABLE models_new DROP INDEX name;
ALTER TABLE models_new ADD FULLTEXT name (name);
ALTER TABLE models_new DISABLE KEYS;
INSERT INTO models_new SELECT * FROM models;
ALTER TABLE models_new ENABLE KEYS;
ALTER TABLE models RENAME models_old;
ALTER TABLE models_new RENAME models;
जब आप संतुष्ट हों तो यह काम कर गया, फिर दौड़ें
DROP TABLE models_old;
इसे आज़माएं !!!