
Actualmente estoy trabajando con una instalación de Magento Enterprise 1.12 que se ejecuta en un par de servidores web Apache agrupados. Mis dos servidores web se basan en sus propias bases de datos en servidores separados que están agrupados en una configuración Master-Master MySQL.
Mi problema es que estoy intentando introducir Solr 3.6.1 en la imagen y no estoy seguro de cómo agregarlo correctamente a mi clúster. ¿Debería poder configurar una instancia de Solr (quizás en un servidor diferente) y señalar ambos sitios o necesito una instancia independiente de Solr para ambos servidores? ¿Necesito dos instancias de Solr configuradas juntas de alguna manera? Pido disculpas si no he proporcionado suficiente información.
Respuesta1
Debe configurar solr en uno de sus servidores y en la configuración de Magento Admin configurarlo Solr Server Hostname
como la dirección de este servidor (si no tiene nombres de dominio separados, inserte la dirección IP allí); dado que tiene replicación de Mysql, ambos usarán la misma configuración. .
Solo asegúrese de que se pueda acceder al nombre de host y al puerto (como 8080) desde su segundo servidor.
Respuesta2
Slayer dio la respuesta básica. Solr run es una aplicación java y se ejecuta en un servidor web java como getty. Ahora, asumiendo que su Apache se ejecuta en el puerto 80, debe configurar su red para que ambos servidores web puedan comunicarse con ese servidor Solr (usando la dirección IP real en su configuración de Magento y obviamente no 127.0.0.1), pero nadie fuera de la red puede hacerlo.
Además, usaría ESO como seguridad y no como autenticación httpauth porque tuvimos problemas en los que no funcionó. Básicamente, magento envía un ping durante algunas operaciones sin credenciales y falla y, por lo tanto, no enviará la consulta real CON las credenciales.
DE ACUERDO. Otro punto importante es la "indexación de texto completo".
Tengo una respuesta larga sobre el desbordamiento de pila aquí.https://stackoverflow.com/questions/11667728/magento-1-12-and-solr-3-6-no-proper-results-and-no-spell-suggestions/12984270#12984270pero intentaré ser breve.
Si ejecuta el indexador de texto completo desde el shell a través de php shell/indexer.php --reindex-all catalogsearch_fulltext, no funcionará correctamente. Un evento no se activa. Ejecútelo desde la interfaz de usuario. Sin embargo, eso es un problema porque la operación tardará más de 4 horas dependiendo de la cantidad de productos que tenga. La solución rápida es modificar el tiempo de espera de PHP en torno a la funcionalidad del indexador de texto completo. Porque obviamente los tiempos de espera de Apache deberían ser cortos. Pueden seguir siendo cortos, pero si el tiempo de espera de PHP es largo, debería continuar ejecutándose aunque Apache muestre una página inactiva.
Además, el magento más nuevo incluye el código del indexador de texto completo en una transacción. Como resultado, mientras se ejecuta y las búsquedas en el sitio devuelven un "tiempo de espera de bloqueo" en la tabla catalogsearch_query. Eliminamos la transacción que la envolvía y estábamos bien.