mysql - SQL search result ranking -


मेरे पास टेबल कॉल ऑब्जेक्ट हैं जो कॉलम हैं:

  object_id, name_english प्रत्येक वस्तु के लिए vchar), नाम_जापानी (vchar), नाम_फ्रेंच (vchar), वस्तु_विवरण   

जब कोई उपयोगकर्ता खोज करता है, तो वे अंग्रेजी, जापानी या फ़्रेंच में प्रवेश कर सकते हैं ... और मेरा एसक्यूएल स्टेटमेंट है:

  SELECT o.object_id, o.name_english , O.name_japanese, o.name_french, o.object_description वस्तुओं से ऑब्जेक्ट के रूप में ओ.नाम_अंग्रेजी की तरह कनकैट ('%' ,: खोज, '%') या ओ। नाम_जापानी की तरह कनकैट ('%',: खोज, '% ') या ओ.नाम_फ्रेंच कन्कैट ('% ',: खोज,'% ') द्वारा आदेश o_name_english, o.name_japanese, o.name_french एएससी   

और कुछ प्रविष्टियां जैसे हैं: <पूर्व> टिन चम्मच, टिन फ़ॉइल, डॉक्टर मार्टिन जूते, मार्टिनी ग्लास, काटना बोर्ड, टिंग सोडा

इसलिए, जब उपयोगकर्ता "टिन" शब्द खोजता है तो ये सभी परिणामों को वापस देगा, लेकिन इसके बजाय मैं केवल उन परिणामों को वापस करना चाहता हूं जो विशिष्ट शब्द "टिन" या प्रदर्शित करते हैं परिणाम और प्रासंगिकता आदेश द्वारा उन्हें रैंक। मैं इसे कैसे प्राप्त कर सकता हूं?

धन्यवाद।

आप MySQL FULLTEXT इंडेक्स का उपयोग कर सकते हैं ऐसा करने के लिए। इसके लिए MyISAM तालिका प्रकार, एक सूचकांक (name_english, name_japanese, name_french, object_description) या जो भी फ़ील्ड आप खोजना चाहते हैं, और MATCH का उचित उपयोग की आवश्यकता है ... कॉलम के ठीक उसी सेट पर ऑपरेटर के विरुद्ध।

निम्नलिखित पृष्ठ पर मैनुअल देखें और उदाहरण देखें

Comments