Как правильно внедрить Apache Solr в кластерную среду Magento?

Как правильно внедрить Apache Solr в кластерную среду Magento?

В настоящее время я работаю с установкой Magento Enterprise 1.12, запущенной на паре кластеризованных веб-серверов Apache. Оба моих веб-сервера используют свои собственные базы данных на отдельных серверах, которые кластеризованы в конфигурации Master-Master MySQL.

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

решение1

Вам следует настроить Solr на одном из ваших серверов и в конфигурации администратора Magento указать Solr Server Hostnameадрес этого сервера (если у вас нет отдельных доменных имен, введите IP-адрес там) — поскольку у вас есть репликация Mysql, они оба будут использовать одну и ту же конфигурацию.

Просто убедитесь, что имя хоста и порт (например, 8080) доступны со второго сервера.

решение2

Slayer дал базовый ответ. Solr run — это приложение Java, которое работает на веб-сервере Java, например, getty. Теперь, предположив, что ваш Apache работает на порту 80, вы должны настроить свою сеть так, чтобы оба веб-сервера могли взаимодействовать с этим сервером Solr (используя реальный IP-адрес в вашей конфигурации Magento, а не 127.0.0.1), но никто за пределами сети не мог.

Более того, я бы использовал ЭТО в качестве вашей безопасности, а не аутентификацию httpauth, потому что мы столкнулись с проблемами, когда это не работало. По сути, magento отправляет ping во время некоторых операций без учетных данных и терпит неудачу и, таким образом, не отправит настоящий запрос С учетными данными.

ОК. Еще один важный момент — «полнотекстовая индексация».

У меня есть длинный ответ по поводу переполнения стека здесьhttps://stackoverflow.com/questions/11667728/magento-1-12-and-solr-3-6-no-proper-results-and-no-spell-suggestions/12984270#12984270но я постараюсь быть кратким.

Если вы запустите полнотекстовый индексатор из оболочки через php shell/indexer.php --reindex-all catalogsearch_fulltext, он не будет работать должным образом. Событие не срабатывает. Поэтому запустите его из пользовательского интерфейса. Однако это проблема, поскольку операция займет более 4 часов в зависимости от количества имеющихся у вас продуктов. Быстрое решение — настроить тайм-аут php вокруг функциональности полнотекстового индексатора. Поскольку, очевидно, ваши тайм-ауты apache должны быть короткими. Они могут оставаться короткими, но если тайм-аут php длинный, он должен продолжать работать, даже если apache покажет мертвую страницу.

Также новейшая версия magento оборачивает код полнотекстового индексатора в транзакцию. В результате, пока он работает, и поиски на сайте возвращают "wait lock timeout" в таблице catalogsearch_query. Мы удалили транзакцию, оборачивающую его, и все было в порядке.

Связанный контент