Это то, что я сейчас имею в качестве очень простого поиска:
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);
Я понимаю, что могу добавить в .Contains () или аналогичном и вставить ключевые слова из поля ключевых слов (разделить на отдельные элементы), и это должно получить список результатов.
Однако мне нужно упорядочить результаты по основному значению. Это означает, что если запись A содержит 2 ключевых слова (в поле nvarchar (MAX) «Body»), она должна быть выше, чем запись B, которая соответствует только одному из ключевых слов. Мне не нужен полный счет каждого удара ... однако, если это будет проще, это будет хорошо.
Так есть ли способ, чтобы приятно подсчитать количество попаданий как часть заказа? Я могу управлять этим, получая результаты и анализируя, однако я действительно не хочу этого делать, так как анализ, возможно, может затормозить машину IIS, в то время как SQL Server является довольно мощным кластером:)
Если у кого-то есть идеи или советы, это может помочь.