Какой метод реализации SOLR я должен использовать; 3 вопроса? - PullRequest
2 голосов
/ 18 января 2010

У меня есть сайт объявлений, в который я сейчас пытаюсь интегрировать SOLR, поэтому поиск становится быстрее ...

В настоящее время у меня есть Mysql в качестве базы данных для всех моих записей, и я использую PHP для запроса и отображения результатов.

У меня есть три основных вопроса: Если бы я должен был реализовать SOLR, как это сделать стандартным способом?

И я не понял, должен ли я обновлять индекс SOLR каждый раз, когда публикуется / обновляется / изменяется новая классификация, или индексировать их все сразу каждые 12 часов или около того?

Должен ли я использовать SOLR, чтобы найти идентификатор объявлений и затем извлечь запись в mysql, или я должен использовать ТОЛЬКО SOLR?

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

Я прочитал несколько замечательных статей о том, как использовать SOLR с PHP ... Но не нашел хороших статей о dataImportHandlers, если это то, что мне нужно ..

Спасибо

1 Ответ

2 голосов
/ 18 января 2010

Если бы я должен был реализовать SOLR, как это стандартный способ сделать это?

Стандартный способ использования Solr - настроить его как отдельное веб-приложение, работающее в экземпляре вашего любимого контейнера веб-приложений (рекомендуется Jetty, и могут быть проблемы с несовместимостью с Resin). Вы общаетесь с ним через его HTTP-интерфейс, либо программно, используя библиотеку, такую ​​как SolrJ, или предоставленные JAR-файлы, либо напрямую, используя curl или веб-браузер.

Для начала я рекомендую прочитать учебник , который предназначен для Solr 1.3, но по большей части все еще актуален.

И я не понял, должен ли я обновлять индекс SOLR каждый раз, когда новый объявление опубликовано / или обновлять / изменять или индексировать их все по раз в 12 часов или около того?

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

Должен ли я использовать SOLR, чтобы найти идентификатор объявления, а затем получить запись в MySQL, или я должен использовать ТОЛЬКО SOLR

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

Но не нашли хороших статей о dataImportHandlers, если это что мне нужно ..

Если вы хотите экспортировать данные MySQL в Solr, используйте CSVRequestHandler (обратите внимание, что здесь csv действительно может быть любым форматом плоского файла, подобным тому, который MySQL будет производить.

Редактировать : в ответ на ваш комментарий я раньше не рассматривал DataImportHandler s, но, читая страницу в руководстве по Solr, кажется, что это полезно для импорта данных непосредственно из вашей базы данных (либо все сразу, либо периодические дельты), когда у вас есть целая схема, которую нужно сохранить. Поэтому я бы сказал, что если данные, которые необходимо проиндексировать, представляют собой несколько полей в одной таблице, используйте CSVRequestHandler, потому что это очень просто и не требует настройки, но если у вас есть несколько таблиц со связями между их и все данные должны быть включены в индекс, тогда вы должны посмотреть на DataImportHandler.

Редактировать 2 : все, что может сделать HTTP-запрос, может обновить Solr, но вот ссылка на проект в коде Google, который обеспечивает реализацию клиента Solr на PHP. Я сам этим не пользовался.

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