जैसा कि किसी ने सुझाव दिया है, आप बस पूर्ण-पाठ खोज को अनुकूलित और उपयोग कर सकते हैं।
यदि आप इस मार्ग को चुनना चुनते हैं, तो आपको आवश्यक फ़ील्ड पर पूर्ण-पाठ खोज सक्षम करने की आवश्यकता होगी।
मुझे लगता है कि आप पोस्ट_टाइटल और पोस्ट_बॉडी (?) की जांच करेंगे, जिसे आपको इसे चलाने की आवश्यकता है;
ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);
जब ऐसा किया जाता है, तो आपकी खोज क्वेरी को आसानी से संपादित किया जा सकता है;
$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";
यदि आप बेहतर मिलान करना चाहते हैं, तो उसके द्वारा उसे एक अंक और क्रम देना भी संभव है, जिसके लिए इसके समान कोड की आवश्यकता होगी:
$sql = "SELECT *, MATCH(post_title, post_body) AGAINST ('{$search}') AS score ".
"FROM `posts` WHERE MATCH(post_title, post_body) AGAINST ('{$search}') ORDER BY `score` DESC";
---नोट्स
खोज के लिए, आपको यह पता लगाना होगा कि आप कैसे खोज रहे होंगे।
पिछले उदाहरण में मैंने इसी तरह का उपयोग किया था, मेरे पास बस खोज शब्द (नाम "खोज") के लिए एक फॉर्म था जिसके परिणामस्वरूप सर्वर पर $_POST['search'] भेजा जा रहा था।
मैंने तब इस्तेमाल किया;
$search = (array_key_exists('search', $_POST) && is_string($_POST['search'])) ? mysql_real_escape_string($_POST['search'], $c) : FALSE ;
if ($search) {
// Do the fulltext query requires (See above)
}
चूंकि पूर्ण-पाठ खोज हाइफ़न की अवहेलना कर देगी, इसलिए यदि आप स्कोर किए गए परिणामों का उपयोग करने का विकल्प चुनते हैं, तो आपके पास केवल रिक्त स्थान रह जाते हैं, जो पूर्ण पाठ के लिए बढ़िया काम करता है।