如何在集群Magento环境中正确实施Apache Solr?

目前,我正在使用在一对集群Apache Web服务器上运行的Magento Enterprise 1.12安装。 我的两台Web服务器都从独立服务器上的数据库中抽取出来,这些服务器在Master-Master MySQLconfiguration中集群。

我的问题是,我正在试图将Solr 3.6.1引入到图片中,我有点不确定如何正确地将其添加到我的群集。 我应该能够设置Solr的一个实例(也许在不同的服务器上)并指向两个站点,或者我需要一个独立的Solr实例吗? 我需要以某种方式configuration两个Solr实例吗? 如果我没有提供足够的信息,我很抱歉。

你应该在你的一个服务器上设置solr,在Magento Adminconfiguration中configurationSolr Server Hostname作为这个服务器的地址(如果你没有单独的域名,在那里插入IP地址) – 因为你有Mysql复制,使用相同的configuration。

只要确保在第二台服务器中可以访问主机名和端口(如8080)即可。

屠宰者给出了基本的答案。 Solr运行是一个Java应用程序,运行在像getty这样的java web服务器上。 现在假设你的apache运行在80端口上,你应该configuration你的networking,这样两个web服务器都可以和这个solr服务器通信(在你的magentoconfiguration中使用真正的ip地址,显然不是127.0.0.1),但是networking外部没有人可以。

此外,我会使用THAT作为您的安全性,而不是httpauth身份validation,因为我们遇到了问题,它不工作。 基本上,magento在没有凭证的情况下在一些操作中发送一个ping,并失败,因此不会发送真正的查询WITH creds。

好。 另一个重要的点是“全文索引”。

我有堆栈溢出在这里很长的回答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从shell运行全文索引器,它将无法正常工作。 一个事件不会被解雇。 所以从UI中运行它。 但是,这是一个问题,因为操作将需要4个多小时,具体取决于您拥有的产品数量。 快速修复是围绕全文索引function调整PHP超时。 因为显然你的apache超时应该很短。 他们可以继续是短暂的,但如果PHP超时很长,它应该继续运行,即使Apache将显示一个死页。

此外,最新的magento将全文索引器代码包装在一个事务中。 因此,它正在运行,并且在该站点上进行search时会在catalogsearch_query表上返回“等待locking超时”。 我们取消了包装它的交易,我们很好。