我最近设置了一个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
语句记录日志。