У меня есть веб-страница asp.net с простым текстовым полем поиска, которое возвращает совпадающие строки из базы данных MSSQL 2005. В настоящее время он использует оператор LIKE для возврата совпадений, но вынуждает пользователя вводить точную фразу. Пользователи хотят больше поисковых запросов Google, и поэтому я решил настроить и проиндексировать необходимые таблицы с помощью FTS.
Я бы хотел, чтобы пользовательское слово для поиска использовалось в поиске CONTAINS, а NEAR отделяло каждое слово, которое они вводят, в текстовое поле. Я новый разработчик и не знаю, как это сделать, или если уже есть встроенная функция для этого.
Так, например, если пользователь вводит «Сойер Том» в поле поиска, запрос должен работать следующим образом:
ВЫБЕРИТЕ BookID, BookTitle
ОТ tblBooks
ГДЕ СОДЕРЖИТСЯ (BookTitle, «Сойер РЯДОМ Том»)
И возврат:
12032 Приключения Тома Сойера
В настоящее время, используя имеющееся у меня утверждение like, пользовательский поиск не найдет совпадений.
Если пользователь вводит просто Сойер, запрос должен работать просто так:
ВЫБРАТЬ BookID, BookTitle
ОТ tblBooks
ГДЕ СОДЕРЖИТСЯ (BookTitle, «Сойер»)
Возвращение:
12032 Приключения Тома Сойера
72192 Buz Sawyer Роя Крейна: Война на Тихом океане (Том 1)
Мой текущий код просто вставляет строку поиска в запрос следующим образом:
ВЫБРАТЬ BookID, BookTitle
ОТ tblBooks
ГДЕ СОДЕРЖИТСЯ (BookTitle, @Search)
Что, очевидно, не работает. Как я могу отделить каждое слово автоматически с помощью NEAR?
Заранее большое спасибо за любую помощь, которую вы можете оказать!
-Давид