Поиск - Сортировка по ключевым словам - PullRequest
0 голосов
/ 04 октября 2010

Есть ли способ сделать что-то вроде этого:

var keywords = SearchUtilities.FindKeyWords(q);

var j = (from p in _dataContext.Jobs
        orderby p.JobKeywords.Select(jobKeyword => jobKeyword.Keyword)
            .Intersect(keywords).Count())
            .Take(10).AsEnumerable();

Основная идея здесь - упорядочить результаты поиска по количеству ключевых слов, которые существуют как в поисковом запросе, так и в связанных с ним ключевых словах.с работой.

Я не хочу сначала выводить все записи из области SQL, а затем по порядку, потому что это очень медленно.Когда я пытаюсь выполнить этот код, он выдает:

Локальная последовательность не может использоваться в реализациях операторов запросов LINQ to SQL, кроме оператора Contains.

Идеи?

1 Ответ

0 голосов
/ 04 октября 2010

Если вы ищете более высокую производительность в поиске, я предлагаю вам использовать хранимую процедуру. На мой взгляд TSQL работает быстрее, чем LinQ. потому что Linq получает все результаты, а хранимая процедура (TSql) не принимает все записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...