Я пытаюсь создать веб-приложение в ASP.NET MVC и должным быть создать довольно сложную функцию поиска. Когда пользователь вводит критерий поиска, я хочу искать множество источников данных, которые включают документы, таблицы в базе данных, URL веб-страницы и некоторых API как Facebook. Любые подсказки, учебные руководства и подсказки значительно ценились бы.
Ваш вопрос предполагает, что вы, вероятно, не планируете реализовать всю функцию с нуля, поэтому вот несколько ссылок, которые вы можете найти полезными.
Одним (самым простым) вариантом может быть использование сторонней поисковой системы (например, Google Custom Search, но Bing, вероятно, имеет аналогичный API). Это позволит вам искать (только) вашу страницу с помощью Google и отображать результаты в настроенном виде. Ограничение заключается в том, что он ищет только данные, отображаемые на некоторых (связанных) страницах.
Более сложный подход заключается в использовании какой-либо библиотеки .NET, которая реализует индексирование за вас (на основе данных, которые вы ей предоставите). Популярной библиотекой является, например, Lucene.Net. В этом случае вы предоставляете ей данные, которые вы хотите искать в явном виде (релевантное содержимое веб-страниц, содержимое базы данных и т.д.), поэтому у вас больше контроля над тем, что будет искаться (но это немного больше работы).
Построение реальных структур и алгоритмов индекса поиска - нетривиальная задача. Вот почему люди используют Lucene, Sphinx, Solr и т. Д. Использование google.com, как рекомендовано в комментариях, не даст вам никакого контроля и плохого соответствия по сравнению с тем, что вы получите от одной из этих бесплатных поисковых систем, при правильной настройке и использовал.
Я рекомендую взглянуть на Solr , он дает вам возможности Lucene, но его намного проще использовать, плюс он добавляет несколько удобных функций, таких как кэширование, сегментирование, фасетирование и т. Д.
SolrNet - это клиент Solr для .Net, у него есть образец приложения ASP.NET MVC, которое вы можете использовать, чтобы увидеть, как оно работает, и в качестве основы для вашего проекта.
Отказ от ответственности: я являюсь автором SolrNet.