मेरी पूर्ण पाठ खोज क्वेरी में, मैं विशेष कॉलम को एक उच्च वेटेज असाइन करना चाहता हूं।मैं पूर्ण पाठ खोज में विभिन्न स्तंभों के लिए वजन कैसे निर्दिष्ट करूं?
SELECT Key_Table.RANK, FT_Table.* FROM Restaurants AS FT_Table
INNER JOIN FREETEXTTABLE(Restaurants, *, 'chilly chicken') AS Key_Table
ON FT_Table.RestaurantID = Key_Table.[KEY]
ORDER BY Key_Table.RANK DESC
अब, मैं नाम स्तंभ परिणामों में एक उच्च महत्व करना चाहते हैं (नाम, कीवर्ड और स्थान पूर्ण-पाठ अनुक्रमित हैं): इस क्वेरी पर विचार करें। वर्तमान में, यदि परिणाम किसी भी तीन कॉलम में पाया जाता है, तो रैंक प्रभावित नहीं होते हैं।
उदाहरण के लिए, मुझे "चिली चिकन" नाम के साथ एक पंक्ति पसंद है, जिसमें कीवर्ड "चिली चिकन" के साथ एक से अधिक रैंक होगा, लेकिन दूसरा नाम।
संपादित करें:
मैं ContainsTable का उपयोग करने के लिए उत्सुक नहीं हूँ, क्योंकि उस वाक्यांश (मिर्च और चिकन, आदि) है, जो शामिल होगा मुझे सभी संभव संयोजनों खोज करने के लिए होने को अलग करने का मतलब होगा - मिर्च और चिकन, मिर्च या चिकन, आदि। मैं चाहता हूं कि एफटीएस इंजन स्वचालित रूप से यह पता लगाए कि कौन से परिणाम सबसे अच्छे हैं, और मुझे लगता है कि FREETEXT इस तरह से एक अच्छा काम करता है।
क्षमा करें अगर मैंने गलत समझा है कि कंटेनर/कंटेनस्टबल कैसे काम करता है।
मुझे आश्चर्य हुआ कि यूनियन का उपयोग करने वाला कुछ संभव था, लेकिन मेरा दिमाग शामिल एसक्यूएल को संसाधित नहीं कर सका! :) मुझे लगता है कि ये दोनों महान समाधान हैं, और उनमें से एक शायद समस्या को हल करेगा! मुझे जांचने और आपको वापस आने दो। मुझे समझ में नहीं आया, हालांकि, आपने अतिरिक्त जोड़ों का उल्लेख क्यों किया? –
डेव, समाधान सॉर्टा काम करता है। समस्या यह है कि चुनिंदा रिटर्न डुप्लिकेट परिणाम देता है। मुझे लगता है कि सबसे अच्छा विकल्प टेबल वैरिएबल में स्टोर करना है, जैसा कि आपने सुझाव दिया था? –
चयन डुप्लिकेट वापस करेगा, तालिका चर का उपयोग करें, फिर अलग का चयन करें। डुप्लीकेट वापस लौटाए जाते हैं क्योंकि कॉलमलोकेशन और रैंक मान प्रत्येक चयन में अलग होंगे, इसलिए एसक्यूएल उन्हें संघ द्वारा शामिल होने में डुप्लिकेट के रूप में नहीं देखता है। –