Индексирование содержимого моих представлений ASP.NET MVC с помощью Lucene.NET - PullRequest
2 голосов
/ 08 февраля 2012

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

У меня есть опыт работы с Lucene.NET, но только при индексировании записей внутри базы данных.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Я не уверен, что вы имеете в виду под частью представления?Но если выводится только текст, почему бы не использовать этот текст и добавить его в качестве документа с дополнительным полем, которое позволит вам перенаправить на соответствующий вид, если вы подтянете его в результатах поиска?Что-то вроде:

Документ: ViewLink: Статья / 23 Текст: Бла-бла-бла ...

добавить по одному для каждого представления, а затем выполнить поиск по индексу?

В качестве альтернативы ваши представления могут фактически загружаться из индекса Lucene: найдите идентификатор статьи = 10, извлеките текст из индекса Lucene и динамически добавьте его в представление.Я не уверен, что это действительно лучший путь.

0 голосов
/ 08 февраля 2012

Вы можете запланировать задачу для загрузки списка необходимых страниц, используя что-то вроде WebClient, а затем проанализировать текст и проиндексировать его с помощью Lucene.

Если вы не хотите вести список, вы можете заставить WebClient переходить по ссылкам, URL которых соответствует регулярному выражению (например, определенные страницы в вашем доменном имени). По сути, вы пишете веб-сканер, и, вероятно, уже существуют инструменты для этого.

См .: https://stackoverflow.com/questions/3740529/good-net-based-open-source-web-crawler или выполните поиск по запросу ".net web crawler"

В качестве альтернативы ищите готовое решение - ищите «поиск по сайту».

Самым простым вариантом с точки зрения индексирования является сохранение любых соответствующих данных в базе данных - к сожалению, похоже, что это не вариант для вас.

...