Я хочу посмотреть на использование Lucene для полнотекстового поиска для сайта, который я сейчас управляю. Сайт полностью построен на технологиях SQL Server 2008/С#.NET 4. Данные, которые я ищу для индексирования, на самом деле довольно просты, и только несколько полей на запись и только одно из тех полей, которые доступны для поиска.
Мне непонятно, какой лучший набор инструментов, который мне нужно использовать, или то, что должна использовать архитектура. В частности:
-
Где я должен поместить индекс? Я видел, как люди рекомендуют размещать его на веб-сервере, но это может показаться расточительным для большого количества веб-серверов. Разумеется, централизация была бы лучше здесь?
-
Если индекс централизован, как бы запросить его, учитывая, что он просто живет в файловой системе? Должен ли я эффективно разместить его на сетевом ресурсе, который могут видеть все веб-серверы?
-
Существуют ли какие-либо ранее существовавшие инструменты, которые будут постепенно заполнять индекс Lucene по расписанию, вытаскивая данные из базы данных SQL Server? Будет ли я лучше отказываться от своего собственного сервиса здесь?
-
Когда я запрашиваю индекс, должен ли я просто отложить кучу идентификатора записи, после чего я вернусь к БД для фактической записи, или я должен стремиться вытащить все, что мне нужно для искать прямо из индекса?
-
Есть ли смысл пытаться реализовать что-то вроде Solr в этой среде ароматов? Если это так, я бы, вероятно, дал ему собственную * nix VM и запустил ее в Tomcat. Но я не уверен, что Солр купит меня в этом случае.