2009-11-10 2 views
11

का उपयोग कर कॉलम पर प्राथमिकता/वजन देना, मैं कीवर्ड के लिए खोज कर कुछ कॉलम के आधार पर परिणामों की एक तालिका वापस करने के लिए कीवर्ड FREETEXTTABLE के साथ SQL सर्वर पूर्ण पाठ खोज का उपयोग कर रहा हूं।FREETEXTTABLE

अब मेरे पास 2 मुख्य कॉलम हैं जिन्हें मैं खोज रहा हूं, शीर्षक और विवरण, मैं शीर्षक कॉलम को प्राथमिकता देना चाहता हूं क्योंकि इसमें मेरे परिणाम होंगे लेकिन विवरण में परिणाम भी हो सकते हैं लेकिन मैं इसे प्राथमिकता देना चाहता हूं विवरण पर शीर्षक में एक शब्द के लिए (लेकिन मैं CONTAINSTABLE का उपयोग नहीं करना चाहता क्योंकि यह बहुत विशिष्ट है)। क्या FREETEXTTABLE का उपयोग कर कॉलम वजन/प्राथमिकता देने का कोई तरीका है?

उत्तर

13

आप इस प्रकार का अपना खुद का 'वज़न', कुछ उपलब्ध कराने, एक संघ के साथ 2 प्रश्नों का उपयोग करना होगा:

select [key], sum(rnk) as weightRank 
from 
     (
      select Rank * 2.0 as rnk, [key] from freetexttable(tableName,Title,'free text string') 
      union all 
      select Rank * 1.0 as rnk, [key] from freetexttable(tableName,Description,'free text string') 
     ) as t 
group by [key]