Каков наилучший подход для использования SOLR с веб-проектами? - PullRequest
5 голосов
/ 10 ноября 2009

хорошо, я совершенно новичок в SOLR и Lucene, но у меня есть Solr, работающий без настроек под Tomcat 6.x, и я только что просмотрел некоторые основные записи в вики.

У меня есть несколько вопросов, и мне тоже нужны некоторые предложения.

  1. Solr может индексировать данные в файлах (XML, CSV), а также может индексировать БД. Можете ли вы просто указать его на URI / домен и проиндексировать веб-сайт так, как это сделал бы Google?

  2. Если у меня есть веб-сайт с данными «Страницы», например «Имя страницы», «Содержимое страницы» и т. Д., А также «Данные о продукции», т. Е. «Название продукта», «SKU» и т. Д., Нужно ли мне два разные файлы Schema.xml? и если так, значит ли это два разных случая Solr?

Наконец, если у вас есть проект с большой реляционной и нормализованной базой данных, что, по вашему мнению, является лучшим подходом из трех вариантов ниже?

  1. Служба промежуточного программного обеспечения, работающая в фоновом режиме, которая анализирует базу данных и вручную создает соответствующие файлы XML для последующей отправки в SOLR

  2. Имейте SOLR, индексируют DB непосредственно. В этом случае, было бы лучше просто указать SOLR на представления, которые бы абстрагировали все связи таблиц?

  3. Любые другие опции, о которых я не знаю?

Контекст: мы работаем в среде Windows 2003, .NET 3.5, SQLServer 2005/2008

ура!

Ответы [ 2 ]

7 голосов
/ 10 ноября 2009
  1. Нет, для этого вам нужен сканер, например Nutch
  2. Да, вам нужны два отдельных индекса (= два schema.xml), поскольку наборы данных, похоже, не связаны между собой. Это не означает два экземпляра Solr, вы можете управлять двумя индексами с помощью Cores .

Что касается заполнения индекса Solr, это зависит от вашего конкретного проекта, например, может ли он переносить устаревшие данные или должен быть абсолютно свежим.

Другие опции для индексации данных:

  • Триггеры базы данных
  • Если вы используете какой-то ORM, используйте его возможности перехвата. Например, вы можете использовать события NHibernate для обновления индекса при обновлении, вставке или удалении. Если вы используете NHibernate и SolrNet , это автоматически позаботится
1 голос
/ 10 ноября 2009

Я думаю, что Маурисио мёртв за совет. Единственное, что я хотел бы отметить, это то, что при принятии решения использовать индексатор промежуточного программного обеспечения или использовать базу данных напрямую. Если ваша база данных (или представления?) Очень близко соответствуют тому, что хочет хорошая схема Solr, то DIH - это прекрасно. Но если вы выполняете индексирование из нескольких источников данных или если вам приходится разбираться с данными в вашей базе данных, чтобы удовлетворить пожелания Solr, то лучше иметь специализированный индексатор промежуточного программного обеспечения.

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