Lucene или Solr для индексации данных базы данных MySQL, некоторые из которых не могут быть опубликованы - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть база данных MySQL с интерфейсом PHP.Я хотел бы реализовать функцию поиска, но у меня несколько уникальная ситуация, и мне нужно несколько советов, прежде чем продолжить.

У моего работодателя большая коллекция архивных исследовательских материалов.Некоторые из коллекций имеют метаданные и данные, доступные в цифровом формате, однако не все цифровые данные могут быть доступны через Интернет из-за соглашений с донорами или вопросов авторского права.В тех случаях, когда цифровые данные не разрешены в Интернете, люди могут физически посещать наше здание и просматривать информацию.Прямо сейчас каждая цифровая коллекция имеет свою собственную базу данных, но мы находимся в процессе консолидации всего в одну базу данных, чтобы патроны могли искать по всем коллекциям одновременно.

Насколько я понимаю, если я использую Solrдля индексации и поиска информация передается по HTTP между экземпляром Solr, запущенным на Tomcat, клиенту, который потенциально может предоставлять данные, которые не должны быть открытыми.Чтобы избежать этой проблемы, я подумал, что, возможно, было бы лучше использовать Lucene непосредственно на сервере для генерации индекса, а затем каким-то образом получить к нему доступ из PHP непосредственно на том же сервере.Мои вопросы: (1) моя оценка ситуации звучит правильно;и (2) если нет, как это на самом деле работает?Я знаю Java.Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 декабря 2011

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

1 голос
/ 28 декабря 2011

Если вы обеспокоены передачей данных из Solr в MySQL, вы можете просто сделать поля только «проиндексированными», но не «сохраненными». Таким образом, вы можете запрашивать их, но не читать их содержимое, кроме того, как было предложено, разрешить доступ к Solr только с доверенных машин (клиент PHP).

Solr не очень хорош в создании больших ответов XML или JSON с содержимым поля, поэтому спрашивайте (и храните) только то, что вам действительно нужно (т. Е. Только идентификатор записи в БД, а остальное - из самой БД). Таким образом, вы получите быстрый ответ, он будет бесполезен для других (в случае утечки информации) и индекс будет меньше.

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