Как отфильтровать записи по словам в SQL-сервере? - PullRequest
0 голосов
/ 12 августа 2011

Как получить результаты из таблицы SQL.
В моем приложении я использовал полнотекстовый поиск.
Я хочу получить:

Например, если пользователь вводит слово типа " Великие события ».Тогда результат должен быть представлен в следующей последовательности.

  1. первый результат, связанный со всем словом " Великие события ", а затем
  2. "Великий" связанный результат, затем
  3. "События"связанный результат.

Первыми результатами должны быть все обновления со всем поисковым термином" Великие события".

Только после того, как вы отобразите эти результаты, тогдаотображать обновления с термином " Великие события ", "Великие события" и т. д.
В основном слова, содержащие термин "Великие события".

Затем отображаются результаты обновлений, которые содержат оба слова«Великий» и «События» и их варианты.
Наконец, покажите результаты обновлений, которые имеют одно из двух слов ...

Моя таблица любит: Столбцы

UserUpdates


UpdateID - int
UserID - int
MsgText - nvarchar (500)
CreatedOn - datetime

Как сделать с помощью сценария SQL ..?

1 Ответ

1 голос
/ 15 августа 2011

Вы можете создать полнотекстовый каталог и добавить полнотекстовый индекс на вашу таблицу, чтобы решить эту проблему.

Сделайте это, вы можете создать простой синтаксический анализатор в C #, чтобы взять условия поиска и создать ключевое слово для поиска; превратить поиск "великих событий" в нечто вроде:

«Великие события» ИЛИ (Great AND Events) '

Вы можете создать такой запрос на основе этого ключевого слова для поиска:

SELECT * FROM CONTAINSTABLE ([YourFullTextIndexTable], *, '"большие события" ИЛИ (Great AND Events)', 2057,0) ЗАКАЗАТЬ НА RANK DESC

Выше для британского английского (2057) и стоп-листа по умолчанию (0).

Это вернет записи с «Великими событиями» в виде фразы, а затем записи с Великими и событиями где-то там.

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