Apache Solr和Magento Enterprise之间的通信问题-仅“ping”;在Solr日志中


Problems communicating between Apache Solr and Magento Enterprise - only "pings" in the Solr log

我最近设置了一个Apache Solr 1.4.1服务器来与Magento Enterprise 1.9一起工作。

设置似乎工作正常,Magento报告它可以成功连接到Solr。

我可以在Solr接口内执行Solr查询,看起来Magento数据已经被Solr成功索引了。

然而

…当我通过Magento进行搜索时,它似乎并没有从Solr中获取搜索结果,而是像往常一样从Magento的MySQL数据库中获取结果。

这是不应该发生的,因为目录搜索引擎在Magento中肯定是设置为Solr的。

当我通过Solr管理界面运行查询时,Solr日志文件显示如下:

[09/05/2013:05:54:48 +0000] "GET /solr/select/?q=fulltext1_en%3Ashirt&version=2.2&start=0&rows=10&indent=on HTTP/1.1" 200 33594

当我通过Magento商店搜索时,我只得到这个:

[09/05/2013:05:54:32 +0000] "HEAD /solr/admin/ping HTTP/1.0" 200 0

所以对我来说,Magento似乎只是"ping"Solr,但实际上并没有发送查询数据。

我已经在php.ini中启用了allow_url_fopen = On来排除这种情况。

任何想法吗?

我首先检查文件var/log/exception.log中的条目。

假设您在Solr日志中看到的ping是由适当的类执行的ping,即

Enterprise_Search_Model_Adapter_HttpStream::_search()    // or
Enterprise_Search_Model_Adapter_PhpExtension::_search()

如果ping失败,您应该找到日志条目,因为catch语句记录日志。