2010-09-03 19 views
5

Я думаю, что здесь отсутствует что-то очевидное. Я должен представить, что многие люди открывают свои серверы Solr другим разработчикам и не хотят, чтобы они могли изменять индекс.Запуск Solr в режиме только для чтения

Есть ли что-то в файле solrconfig.xml, которое может быть настроено так, чтобы сделать индекс доступным только для чтения?

Обновление для разъяснений: Моя цель - использовать Solr с существующим индексом Lucene, управляемым другим приложением. Это работает отлично, но я хочу быть уверенным, что Solr никогда не пытается писать этот индекс.

+0

Почему вы говорите, что «многие люди открывают свои серверы Solr другим разработчикам»? –

+0

Ну, я сказал, что я * представлю, что они делают.Скажем, у вас есть сайт с большим количеством контента, вы уже используете Solr для поиска сайта, и хотите, чтобы другие сайты могли искать ваш контент. Вместо того, чтобы создавать пользовательский API, Solr может сделать это намного проще ... – wynz

ответ

2

Возможно, вы просто удалите строку, которая определяет ваш solr.XmlUpdateRequestHandler в файле solrconfig.xml.

Репликация - отличный способ настроить чтение только при возможности индексирования. Просто установите мастер с ограниченным доступом и подчиненный, который доступен только для чтения (удалив XmlUpdateRequestHandler из конфигурации). Ведомое устройство будет реплицировано из мастера, но не будет принимать никаких указаний напрямую.

UPDATE

Я только что прочитал, что в Solr 1.4, вы можете disable component. Я просто попробовал его в/update requestHandler, и мне больше не удалось индексировать.

+0

Очевидно, комментируя, что обработчик запросов не отключит ничего, потому что он просто действует как переопределение (согласно http://wiki.apache.org/solr/ SolrRequestHandler). Я думаю, вы могли бы придерживаться фиктивного класса для обработчика запроса/update, но это похоже на плохую идею. – wynz

+0

спасибо, его приятно знать ... –

+0

см. Мои обновления об отключении компонента –

6

Предоставление экземпляра Solr для общедоступного интернета - плохая идея. Несмотря на то, что вы можете убрать некоторые компоненты, чтобы сделать его доступным только для чтения, он просто не был разработан с учетом безопасности, он предназначен для использования как внутренняя служба, так же, как вы не могли бы открыть RDBMS.

От Solr Security wiki page:

В первую очередь, Solr не самого беспокойства с безопасностью либо на уровень документа или уровень связи. Он сильно рекомендовал, чтобы сервер приложений , содержащий Solr, был защищен брандмауэром , так что только клиенты с доступом к Solr являются вашими собственными. A Установка по умолчанию/пример из Solr позволяет любому клиенту с доступом к нему добавлять, обновлять и удалять документы (и, конечно, поиска/начитался), в том числе доступа к конфигурации Solr и схемы файлов и административному пользователь интерфейс.

Даже ajax-solr, клиент Solr для JavaScript предназначены для запуска в браузере, recommends talking to Solr through a proxy.

Возьмем, к примеру, guardian.co.uk: это хорошо известно, что they use Solr for searching, но они построили API, чтобы другие могли получить доступ к их контенту. Таким образом, они могут define и control точно, что и как они хотят, чтобы люди искали вещи.

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

+0

+1 хорошо сказано и спасибо за ссылки –

+0

Это хорошие предложения и, надеюсь, кто-то настраивает Solr для производство будет следовать этим предложениям, но на самом деле это не совсем вопрос. Я отредактирую вопрос, чтобы уточнить мой конкретный случай использования. – wynz

+0

@wynz: хорошо, это здорово, если оно предназначено только для внутреннего использования. –

Смежные вопросы