Magento的1.12和Solr 3.6不正确的结果,并没有咒语建议(Magento 1.12 a

2019-07-30 15:15发布

任何意见或建议。 我有点迷惑,我已经安装的Solr和Magento的几次,但现在Magento的1.12行为其不怪正确的结果,并没有拼写检查。

我们有我们的Magento 1.11工作正常使用Solr 1.4,它仍然工作正常我尝试使用1.4和Solr 3.6没有修好。

任何意见或建议。 我有点迷惑

Answer 1:

我们找到了Solr的多个问题的Magento EE 1.12。

  1. 如果你通过一个cronjob运行从外壳的全文索引以下事件(是拼写错误)“catelogsearch_searchable_attributes_load_after”不会出动,这方法就不会运行:storeSearchableAttributes。 这防止从Solr的文档发送所有的全文属性。 解决的办法是从GUI运行它,但你必须在.htaccess扩展你的PHP超时,可能延长PHP内存限制为好。 我可能会硬编码的地方,因为你显然不希望为您的网站访问者这么长的超时。

  2. 我建议启用“部分提交”在Magento管理GUI。

  3. 注意Solr的日志时,运行此索引。 它提供了有价值的线索。 我们有哪些是在Solr中造成了严重的错误的两个问题。 在其中一种“*”正在逃往“\ *”不正确。 我们通过建立从核心本地覆盖,我们检查推翻它==“*”:应用程序/代码/本地/企业/搜索/型号/适配器/ Solr的/ Abstract.php

      foreach ($facetFieldConditions as $facetCondition) { if (is_array($facetCondition) && isset($facetCondition['from']) && isset($facetCondition['to'])) { $from = (isset($facetCondition['from']) && strlen(trim($facetCondition['from'])) && trim($facetCondition['from']) !== "*") ? $this->_prepareQueryText($facetCondition['from']) : '*'; $to = (isset($facetCondition['to']) && strlen(trim($facetCondition['to'])) && trim($facetCondition['to']) !== "*") 
  4. 我们也有地方是设置为多选属性可能没有选择选项的情况。 长话短说当数组是空的它导致了一个空字符串被追加该扔了一个错误。 解决的办法是首先检查,如果数组为空。 因此,我们不得不与应用程序/代码/本地/企业/搜索/型号/适配器/ Abstract.php覆盖

    if (!empty($val)) { $preparedValue = array_merge($preparedValue, explode(',', $val)); }



Answer 2:

我们还只是固定在那里与选择/多选属性的产品,正在用空白标签到Solr发送一个问题。 这导致索引器无法完成。

我们推翻了应用程序/代码/核心/企业/搜索/型号/适配器/ Abstract.php,将让本地模块正确地覆盖。

这里的修复

--- a/app/code/core/Enterprise/Search/Model/Adapter/Abstract.php
+++ b/app/code/local/Enterprise/Search/Model/Adapter/Abstract.php
@@ -434,6 +434,10 @@ abstract class Enterprise_Search_Model_Adapter_Abstract
                     foreach ($preparedValue as $id => $val) {
                         $preparedValue[$id] = $attribute->getSource()->getOptionText($val);
                     }
+                    
+                    $preparedValue = array_filter($preparedValue);
+                    $preparedNavValue = array_filter($preparedNavValue);
+                    
                 } else {
                     $preparedValue = $value;
                     if ($backendType == 'datetime') {


文章来源: Magento 1.12 and Solr 3.6 No proper results and no spell suggestions
标签: magento solr