Как реализовать функции поиска в приложениях ASP.NET MVC

Я могу представить себе множество способов реализации функций поиска в приложении ASP.NET MVC, но, поскольку я не могу найти много документации, мне было интересно, есть ли у вас какой-либо общий шаблон, технология или общий подход для реализации функций поиска в приложении ASP.NET MVC. (аналогично stackoverflow). Я имею в виду следующие технологии:

  • Полнотекстовый поиск SQL Server
  • Внешняя поисковая система (например, Search Server 2008)
  • Lucene.NET

... но как лучше всего их интегрировать с ASP.NET MVC?

Идеи?


person sachaa    schedule 18.02.2009    source источник


Ответы (2)


Не совсем понятно, о чем конкретно вы спрашиваете, но в целом:

  1. Напишите помощник представления или частичное представление, которое возвращает форму поиска. Вызывайте это на других страницах везде, где вам нужно отобразить окно поиска. Сделайте действие формы GET, а не POST.
  2. Для поиска по сайту вам, вероятно, понадобится контроллер поиска. Для поиска в одном конкретном типе данных вы можете добавить действие к существующему контроллеру или аргумент к существующему действию. По большей части, единственное, что мы должны добавить, - это аргумент универсального действия «Список» для определенного типа данных. Форма поиска вызывает «Список» и устанавливает аргумент со строкой поискового запроса.
  3. Фактический поиск осуществляется в вашем репозитории. Это единственная часть приложения, которая знает о таких вещах, как SQL Server или Lucene. В тривиальных случаях контроллер может добавить .Where к IQueryable ‹T›, возвращаемому репозиторием.
person Craig Stuntz    schedule 19.02.2009

Я полагаю, что в одном из своих сообщений в блоге Джефф Этвуд рассказывает о том, как он использовал карты сайта чтобы позволить Google обрабатывать большую часть возможностей поиска при переполнении стека. Зачем писать собственные поисковые алгоритмы, если люди, скорее всего, все равно просто воспользуются Google?

person kgrad    schedule 18.02.2009