ASP.NET C # Поиск в таблице базы данных SQL Server - PullRequest
4 голосов
/ 20 декабря 2009

Я строю портал, который не является движком блогов, но очень похож на один. В SQL Server у меня есть база данных, содержащая таблицу, которая является основой для «сообщений». Эта таблица сообщений содержит следующие столбцы:

  • ID
  • Автор (ы)
  • Метки
  • Название
  • Содержание поста уценки

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

Существуют ли какие-либо реализации с открытым исходным кодом или пример кода в Интернете для выполнения этого поиска ? Если нет, как я могу начать? Не могли бы вы указать мне на некоторые учебники с примером кода о том, как сделать это с ASP.NET и C #? Кроме того, Google (или другая компания) создала что-то для этого?

Надеюсь, мой вопрос не слишком широкий или расплывчатый. Заранее спасибо!

Ответы [ 5 ]

9 голосов
/ 20 декабря 2009

Используете ли вы Sql Server 2008? Если это так, вы можете использовать встроенные в него функции полнотекстового поиска . Тогда это будет так же просто, как передача пользовательского (продезинфицированного) ввода в SQL-запрос.

Например, вот запрос, который будет искать в полях Author, Title и PostContent введенный пользователем текст.

SELECT Author, Title FROM Posts
WHERE CONTAINS((Author, Title, PostContent), @userInput);

SQL Server 2008 также поддерживает различные методы поиска , такие как простой токен, взвешенные значения слов, поиск по синонимам, близости и префиксу ... это довольно здорово.

2 голосов
/ 20 декабря 2009

Задумывались ли вы о реализации поиска с использованием полнотекстового поиска? Похоже, отличный сценарий для этого. Эта ссылка может содержать полезную информацию об архитектуре и развитии полнотекстового поиска. http://msdn.microsoft.com/en-us/library/ms142571.aspx

1 голос
/ 20 декабря 2009

Если это общедоступно, вы всегда можете включить его в Google. У Google есть устройство , которое вы также можете приобрести для этого.

Если вы не хотите бросать свои собственные, вы можете посмотреть:

  1. Sharepoint (обычный [поставляется с Win 2003+] или сервером портала)
  2. SOLR (проект Apache Lucene)

Если вы хотите свернуть свои собственные, я предлагаю изучить службы аналитики SQL Server, чтобы регулярно создавать для вас поисковые индексы.

0 голосов
/ 20 декабря 2009

Я думаю, вам следует попробовать Lucene, который вы можете использовать для индексации всех ваших данных и создания действительно хорошей поисковой системы. Я могу дать больше информации об этом, если хотите.

0 голосов
/ 20 декабря 2009

Я согласен с Womp - Полнотекстовый индекс - путь. Вы также можете посмотреть на NLucene , если вам нужно индексировать не только таблицу базы данных.

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