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

मैं php और mySQL के साथ एक साधारण साइट खोज कैसे कार्यान्वित करूं?

हर कोई MySQL पूर्ण टेक्स्ट खोज का सुझाव दे रहा है, हालांकि आपको एक बड़ी चेतावनी के बारे में पता होना चाहिए। फुलटेक्स्ट सर्च इंजन केवल MyISAM इंजन के लिए उपलब्ध है (InnoDB नहीं, जो कि इसकी संदर्भात्मक अखंडता और ACID अनुपालन के कारण सबसे अधिक इस्तेमाल किया जाने वाला इंजन है)।

तो आपके पास कुछ विकल्प हैं:

1. सबसे आसान तरीका कण वृक्ष द्वारा रेखांकित किया गया है। . आप पूरी तरह से शुद्ध एसक्यूएल से रैंक की गई खोजों को प्राप्त कर सकते हैं (कोई पूर्ण टेक्स्ट नहीं, कुछ भी नहीं)। नीचे दी गई SQL क्वेरी खोज फ़ील्ड में एक स्ट्रिंग की घटनाओं की संख्या के आधार पर एक तालिका और रैंक परिणाम खोजेगी:

SELECT
    SUM(((LENGTH(p.body) - LENGTH(REPLACE(p.body, 'term', '')))/4) +
        ((LENGTH(p.body) - LENGTH(REPLACE(p.body, 'search', '')))/6))
    AS Occurrences
FROM
    posts AS p
GROUP BY
    p.id
ORDER BY
    Occurrences DESC

थोड़ा और स्पष्टता प्रदान करने के लिए उनके उदाहरण को संपादित किया

उपरोक्त SQL क्वेरी में बदलाव, WHERE स्टेटमेंट्स (WHERE p.body LIKE '%whatever%you%want') आदि को जोड़ने से शायद आपको वही मिलेगा जो आपको चाहिए।

2. आप पूर्ण पाठ का समर्थन करने के लिए अपने डेटाबेस स्कीमा को बदल सकते हैं। अक्सर Sphinx Fulltext Search Engine जैसे प्लग इन इंस्टॉल किए बिना InnoDB संदर्भात्मक अखंडता, ACID अनुपालन और गति बनाए रखने के लिए क्या किया जाता है MySQL के लिए उद्धरण डेटा को अपनी तालिका में विभाजित करना है। असल में आपके पास एक टेबल कोट्स होगा जो एक इनो डीबी टेबल है, जो आपके टेक्स्ट फ़ील्ड "डेटा" के बजाय आपके पास एक संदर्भ "quote_data_id" है जो एक Quote_Data टेबल पर आईडी को इंगित करता है जो एक माईसाम टेबल है। आप MyISAM टेबल पर अपना पूरा टेक्स्ट कर सकते हैं, अपने InnoDB टेबल के साथ लौटाए गए आईडी में शामिल हो सकते हैं और आपके पास अपने परिणाम हो सकते हैं।

3. Sphinx इंस्टॉल करें . इसके साथ शुभकामनाएँ।

आपने जो वर्णन किया है, उसे देखते हुए मैं अत्यधिक अनुशंसा करते हैं कि आप मेरे द्वारा प्रस्तुत पहला दृष्टिकोण अपनाएं क्योंकि आपके पास एक साधारण डेटाबेस संचालित साइट है। पहला उपाय सरल है, काम जल्दी हो जाता है। ल्यूसीन सेटअप करने के लिए एक कुतिया होगा, खासकर यदि आप इसे डेटाबेस के साथ एकीकृत करना चाहते हैं क्योंकि ल्यूसीन मुख्य रूप से इंडेक्स फाइलों के लिए डिज़ाइन किया गया है डेटाबेस नहीं। Google कस्टम साइट खोज आपकी साइट को बहुत अधिक प्रतिष्ठा खो देता है (आपको शौकिया और हैक किया हुआ दिखता है), और MySQL का फुलटेक्स्ट सबसे अधिक संभावना है कि आप अपने डेटाबेस स्कीमा को बदल देंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL बूलियन फुल-टेक्स्ट सर्च को कैसे ऑप्टिमाइज़ करें? (या इसे किसके साथ बदलना है?) - सी #

  2. मैसकल:एकाधिक टेबल या एक बड़ी टेबल?

  3. MySQL डायनेमिक क्रॉसस्टैब क्वेरी:अतिरिक्त कॉलम के रूप में चाइल्ड रिकॉर्ड का चयन करना

  4. mysql डेटाबेस का आकार कैसे प्राप्त करें?

  5. django ऐप बनाने के लिए रिवर्स इंजीनियर mysql डेटाबेस