
Atualmente estou trabalhando com uma instalação do Magento Enterprise 1.12 em execução em um par de servidores web Apache agrupados. Ambos os meus servidores web utilizam seus próprios bancos de dados em servidores separados que são agrupados em uma configuração Master-Master MySQL.
Meu problema é que estou tentando introduzir o Solr 3.6.1 na imagem e não tenho certeza de como adicioná-lo corretamente ao meu cluster. Devo ser capaz de configurar uma instância do Solr (talvez em um servidor diferente) e apontar ambos os sites para ela ou preciso de uma instância autônoma do Solr para ambos os servidores? Preciso de duas instâncias do Solr configuradas juntas de alguma forma? Peço desculpas se não forneci informações suficientes.
Responder1
Você deve configurar o solr em um de seus servidores e na configuração do Magento Admin configurar Solr Server Hostname
como endereço deste servidor (se você não tiver nomes de domínio separados, insira o endereço IP lá) - como você tem replicação Mysql, ambos usarão a mesma configuração .
Apenas certifique-se de que o nome do host e a porta (como 8080) estejam acessíveis no seu segundo servidor.
Responder2
Slayer deu a resposta básica. Solr run é um aplicativo java e roda em um servidor web java como o getty. Agora, supondo que seu Apache seja executado na porta 80, você deve configurar sua rede para que ambos os servidores web possam se comunicar com esse servidor solr (usando o endereço IP real em sua configuração magento e obviamente não 127.0.0.1), mas ninguém fora da rede pode.
Além disso, eu usaria ISSO como sua segurança e não como autenticação httpauth, porque tivemos problemas em que não funcionou. Basicamente o magento envia um ping durante algumas operações sem credenciais e falha e assim não enviará a consulta real COM as credenciais.
OK. Outro ponto importante é a “indexação de texto completo”.
Eu tenho uma resposta longa sobre estouro de pilha aquihttps://stackoverflow.com/questions/11667728/magento-1-12-and-solr-3-6-no-proper-results-and-no-spell-suggestions/12984270#12984270mas tentarei ser breve.
Se você executar o indexador de texto completo a partir do shell via php shell/indexer.php --reindex-all catalogsearch_fulltext ele não funcionará corretamente. Um evento não é disparado. Portanto, execute-o na IU. No entanto, isso é um problema porque a operação levará mais de 4 horas dependendo da quantidade de produtos que você possui. A solução rápida é ajustar o tempo limite do php em torno da funcionalidade do indexador de texto completo. Porque obviamente os tempos limite do seu apache devem ser curtos. Eles podem continuar curtos, mas se o tempo limite do php for longo, ele deverá continuar a ser executado, mesmo que o Apache mostre uma página morta.
Além disso, o mais novo magento envolve o código do indexador de texto completo em uma transação. Como resultado, enquanto ele está em execução e as pesquisas no site retornam um "tempo limite de espera de bloqueio" na tabela catalogsearch_query. Removemos a transação e ficamos bem.