Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql पूर्ण पाठ खोज विफलता

-- drop table testproduct;
CREATE TABLE testproduct
(
    Id                VARCHAR(16),
    prod_name           TEXT,
    ProductIdType     VARCHAR(8),
  PRIMARY KEY (Id),
  FULLTEXT (prod_name)
) ENGINE=MyISAM;

insert into testproduct (id,prod_name,productidtype) values ('B00005N5PF','one pen and a good price for a pen','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('B570J5XS3C',null,'ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C00ZZ5N5PF','let us get rid of some noise','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D00LL5N5PA','four score and seven years ago our fore...','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('EEEZZ5N5PF','he has a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C01ZZ5N5PF','and then we','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('B00ZZ5N5PF','he has a pen in his pocket not a banana','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C02ZZ5N5PF','went to the store','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C03ZZ5N5PF','and decided that we should buy some','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C04ZZ5N5PF','fruit cups or fruit or berries or pebbles','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C037Z5N5PF','then he and her she and it','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C04K95N5PF','threw some daggers and a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D88895N5PF','more noise and some of this','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D34595N5PF','this article about harpoons really drills into the throwing of harpoon or harpoons to those that deserve a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D12395N5PF','and there we go','ASIN');

पूर्ण पाठ खोज को बार-बार होने वाले 'शोर' से छुटकारा पाने के लिए कुछ विविधता की आवश्यकता होती है। न्यूनतम डेटा के साथ परीक्षण खराब परिणाम देगा। किसी भी अर्थपूर्ण चीज़ के बाहर आने के लिए अपना पूरा संग्रह उस पर फेंक दें। नीचे दिए गए कुछ लिंक में देखे गए शब्दों के न्यूनतम आकार के लिए भी सेटिंग्स हैं जिन्हें खोजने का प्रयास किया गया है।

शब्दों को रोकें

MySql स्टॉप वर्ड्स की सूचियां हैं खोज प्रक्रिया के दौरान छोड़े गए महत्वहीन शब्दों का प्रतिनिधित्व करने वाली विभिन्न भाषाओं में। उस सूची को सर्वर में संकलित किया गया है, लेकिन इसे इस मैन्युअल पेज और टेक्स्ट:

<ब्लॉकक्वॉट>

डिफ़ॉल्ट स्टॉपवर्ड सूची को ओवरराइड करने के लिए, ft_stopword_file systemvariable सेट करें। (खंड 5.1.4, "सर्वर सिस्टम चर" देखें।) वेरिएबलवैल्यू फ़ाइल का पथ नाम होना चाहिए जिसमें स्टॉपवर्डलिस्ट हो, या स्टॉपवर्ड फ़िल्टरिंग को अक्षम करने के लिए खाली स्ट्रिंग होना चाहिए। सर्वर डेटा निर्देशिका में फ़ाइल की तलाश करता है जब तक कि एक अलग निर्देशिका निर्दिष्ट करने के लिए एक पूर्ण पथ नाम नहीं दिया जाता है। इस चर के मान या स्टॉपवर्ड फ़ाइल की सामग्री को बदलने के बाद, सर्वर को पुनरारंभ करें और अपने FULLTEXT अनुक्रमणिका का पुनर्निर्माण करें।

कुछ नमूना प्रश्न

-- select * from testproduct
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('score' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('harpoon' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('banana' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('years' IN BOOLEAN MODE);

एक से अधिक शब्दों का मिलान करने के लिए:

SELECT id,prod_name, match( prod_name )
AGAINST ( '+harpoon +article' IN BOOLEAN MODE ) AS relevance
FROM testproduct 
ORDER BY relevance DESC

relevance . में वास्तविक महत्व देता है कॉलम:

SELECT id,prod_name, match( prod_name )
AGAINST ( '+harpoon +article' IN NATURAL LANGUAGE MODE) AS relevance
FROM testproduct 
ORDER BY relevance DESC
+------------+--------------------------------------------------------------------------------------------------------------------+--------------------+
| id         | prod_name                                                                                                          | relevance          |
+------------+--------------------------------------------------------------------------------------------------------------------+--------------------+
| D34595N5PF | this article about harpoons really drills into the throwing of harpoon or harpoons to those that deserve a harpoon | 3.6207125186920166 |
| EEEZZ5N5PF | he has a harpoon                                                                                                   | 1.2845110893249512 |
| C04K95N5PF | threw some daggers and a harpoon                                                                                   | 1.2559525966644287 |
|------------+--------------------------------------------------------------------------------------------------------------------+--------------------+

एकाधिक शब्द अनुभाग को यहां से हटा दिया गया है . धन्यवाद स्पेंसर




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लगातार x दिनों के लिए जाँच करें - डेटाबेस में दिए गए टाइमस्टैम्प

  2. डबल-एन्कोडेड UTF8 वर्णों को कैसे ठीक करें (utf-8 तालिका में)

  3. क्रोम एक्सटेंशन से डीबी से कनेक्ट हो रहा है?

  4. MySQL में utf8mb4 और utf8 चारसेट में क्या अंतर है?

  5. आप MySQL में WITH क्लॉज का उपयोग कैसे करते हैं?