這是我現在有一個非常基本的搜索:LINQ關鍵字搜索與排序依據基於計數(LINQ到SQL)相關
var Results = from p in dx.Listings select p;
if (CategoryId > 0) Results = Results.Where(p => p.CategoryId == CategoryId);
if (SuburbId > 0) Results = Results.Where(p => p.SuburbId == SuburbId);
var OrderedResults = Results.OrderByDescending(p => p.ListingType);
OrderedResults = OrderedResults.ThenByDescending(p => p.Created);
我知道我可以在。載有(添加)或類似並從關鍵字框中輸入關鍵字(拆分爲單個項目),並獲得結果列表。
但是我需要通過基本相關性來排序結果。這意味着如果記錄A包含2個關鍵字(在'Body'nvarchar(MAX)字段中),它應該高於僅匹配1個關鍵字的記錄B.我不需要對每一次擊球進行全面統計......但是,如果這是一個eaiser來管理的話就沒問題。
那麼有沒有什麼辦法直接在命令中直接得到命中數呢?我可以通過獲取結果和解析來管理它,但是我真的不想這麼做,因爲解析可能有數千個人可能突破IIS機器,而SQL Server是一個體面強大的集羣:)
如果任何人有任何想法或提示這將是一個很大的幫助。
如果我創建一個自定義功能在裏面添加,然後它會在Web服務器上本地解析每條記錄而不是一個SQL查詢是否正確? – 2009-08-24 14:37:34
沒錯。你正試圖通過LINQ OrderBy方法來實現這一點,我現在瞭解你嗎? – 2009-08-24 14:40:06
是啊:)我到目前爲止所能想到的可能是一組動態子查詢每個關鍵字來獲得計數orderby ...這似乎凌亂嘿 – 2009-08-24 14:42:37