2012-07-26 9 views
5

कोई विचार या सुझाव। मैं उलझन में हूं, मैंने कई बार सोलर और Magento सेटअप किया है, लेकिन अब Magento 1.12 के साथ अजीब व्यवहार कोई उचित परिणाम और कोई जादू जांच नहीं है।Magento 1.12 और Solr 3.6 कोई उचित परिणाम नहीं और कोई वर्तनी सुझाव नहीं

हमारे पास 1.4% के साथ हमारे Magento 1.11 काम कर रहे थे, यह अभी भी ठीक काम कर रहा है मैं 1.4 और सौर 3.6 कोई फिक्स का उपयोग करने की कोशिश करता हूं।

कोई विचार या सुझाव। मैं उलझन में हूं

+0

मुझे लगता है कि आप Magento एंटरप्राइज के साथ समर्थन मिलता है। क्या आपने उनसे पूछा है? –

उत्तर

6

हमें Magento EE 1.12 के साथ हलर के साथ कई समस्याएं मिली हैं।

  1. आप एक cronjob के माध्यम से निम्न इवेंट (हाँ इसे गलत तरीके से लिखा जाता है) खोल से की प्रतिलिपि प्राप्त इंडेक्सर चलाते हैं "catelogsearch_searchable_attributes_load_after" भेजा नहीं किया जाएगा और इस विधि को चलाने नहीं किया जाएगा: storeSearchableAttributes। इसने सभी पूर्ण टेक्स्ट गुणों को सौर दस्तावेज़ों में भेजने से रोका। समाधान इसे GUI से चलाने के लिए है, लेकिन आपको अपने php टाइमआउट को .htaccess में विस्तारित करना होगा और संभवतः PHP स्मृति सीमा भी बढ़ाएं। मैं शायद इसे कहीं भी हार्डकोड कर दूंगा क्योंकि आप स्पष्ट रूप से अपने वेबसाइट आगंतुकों के लिए इतना लंबा समय नहीं चाहते हैं।

  2. मैं Magento व्यवस्थापक gui में "आंशिक प्रतिबद्धता" को सक्षम करने की अनुशंसा करता हूं।

  3. जब आप इस सूचकांक को चला रहे हों तो सौर लॉग पर ध्यान दें। यह मूल्यवान सुराग देता है। हमारे पास दो मुद्दे थे जो सोलर में गंभीर त्रुटियां पैदा कर रहे थे। एक जहां "*" गलत तरीके से बच निकला था। हम इसे कोर से एक स्थानीय ओवरराइड जहाँ हम जाँच बनाकर overrode == "*": एप्लिकेशन/कोड/स्थानीय/उद्यम/खोज/मॉडल/एडाप्टर/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)); }

1
था

हम भी सिर्फ एक समस्या तय जहां का चयन/बहु-चयन के साथ उत्पाद गुणों को खाली करने के लिए खाली लेबल के साथ भेजा जा रहा था। इसने इंडेक्सर को पूरा करने में असफल रहा।

हम ऐप/कोड/कोर/एंटरप्राइज़/सर्च/मॉडल/एडाप्टर/सार.एफ़.पी.पी. को ओवरराइड करते हैं और स्थानीय मॉड्यूल को इसे सही तरीके से ओवरराइड करने के लिए बना देंगे।

यहाँ ठीक

--- 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') { 
संबंधित मुद्दे