คำถามติดแท็ก indexing

คำถามเกี่ยวกับ Magento Indexer ซึ่งรวมถึงดัชนีแค็ตตาล็อกแบบแบน สำหรับดัชนี MySQL ให้ใช้แท็ก "mysql -indexes" แทน

7
ดัชนีราคาใหม่เป็นสาเหตุทำให้ DB หยุดชะงักในระหว่างการเช็คเอาต์
ฉันประสบปัญหาที่ฉันเชื่อว่ากระบวนการจัดทำดัชนีราคาสินค้าใหม่ทำให้เกิดข้อยกเว้นเดดล็อกในกระบวนการชำระเงิน ฉันตรวจพบข้อยกเว้นนี้ในกระบวนการเช็คเอาต์: ข้อยกเว้นการแปลงคำสั่งซื้อ: SQLSTATE [40001]: ความล้มเหลวในการทำให้เป็นอันดับ: 1213 พบการหยุดชะงักเมื่อพยายามล็อค ลองรีสตาร์ทธุรกรรม น่าเสียดายที่ฉันไม่มีร่องรอยเต็มสแต็คเนื่องจากข้อยกเว้นถูกจับได้ แต่การตรวจสอบสถานะ INNODB ฉันสามารถติดตามการหยุดชะงักได้: SELECT `si`.*, `p`.`type_id` FROM `cataloginventory_stock_item` AS `si` INNER JOIN `catalog_product_entity` AS `p` ON p.entity_id=si.product_id WHERE (stock_id=1) AND (product_id IN(47447, 56678)) FOR UPDATE *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page …

1
เหตุใดจึงไม่มีการจัดทำดัชนีใหม่สำหรับ EAV และแท็กบางส่วน
คำถามนี้ทำให้ฉันงุนงงไม่นาน เหตุใดจึงมีการแก้ไขข้อผิดพลาดในการปรับปรุงใน Magento 1.13.xx เรียกว่าการจัดทำดัชนีใหม่บางส่วนไม่ครอบคลุมตัวทำดัชนี "คุณสมบัติของผลิตภัณฑ์" และ "ข้อมูลรวมแท็ก" ทำไมทั้งสองต้องทำดัชนีใหม่ด้วยตนเอง? ตามความเห็นของฉันดัชนี EAV เป็นหนึ่งในสิ่งที่สำคัญที่สุด การไม่มีการจัดทำดัชนีใหม่บางส่วนหมายความว่าหลังจากการขายแต่ละครั้ง (และบางคนมี) ดัชนีจะไม่ถูกต้องซึ่งหมายความว่าการนำทางแบบเลเยอร์ไม่ถูกต้องอีกต่อไปซึ่งส่งผลให้เกิดการแสดงข้อมูลที่ไม่สอดคล้องและสูญเสียการขาย ฉันขาดอะไรที่ชัดเจนหรือไม่ ปรับปรุง: ดังนั้นนี่คือคำอธิบายของข้อผิดพลาดนี้ เมื่อมีการขายและสินค้าหมดการนำทางแบบแบ่งชั้นจะสะท้อนถึงการเปลี่ยนแปลงของคุณลักษณะของผลิตภัณฑ์สำหรับผลิตภัณฑ์ที่เรียบง่าย แต่ไม่ใช่สำหรับการกำหนดค่า (ยังไม่ได้ทดสอบการรวมกลุ่มและจัดกลุ่ม) ดังนั้นสมมติว่าในแคตตาล็อกของคุณคุณมีผลิตภัณฑ์ที่สามารถกำหนดค่าได้เช่นเสื้อยืดที่มีขนาดแตกต่างกันและคุณลักษณะ "ขนาด" คือ "กรองได้ (พร้อมผลลัพธ์)" จากนั้นในการนำชั้นของหมวดหมู่หรือผลการค้นหาที่เหมาะสมคุณจะมีส่วนขนาดที่ทุกใช้ได้ขนาดมีการระบุไว้ หากหลังจากการขายหนึ่งขนาดขนาดหนึ่งหมดคุณคาดว่าจะหายไปจากการนำทางแบบเลเยอร์ สิ่งนี้จะไม่เกิดขึ้นหากคุณไม่รีเฟรชดัชนีแอตทริบิวต์และล้างแคชบล็อก จุดบกพร่องนี้สำคัญมาก มันเป็นภัยคุกคามสองทาง ขั้นแรกลูกค้าปลายทางที่เห็นขนาดของเขาในการนำทางแบบเลเยอร์แล้วเห็นว่าไม่สามารถใช้งานได้จริงจะทำให้ร้านค้าของคุณตกอยู่ในความยุ่งยาก สิ่งที่แย่กว่านั้นคือเมื่อสินค้ากลับมาอยู่ในสต็อกจะไม่สามารถมองเห็นได้ในระบบนำทางแบบเลเยอร์ดังนั้นลูกค้าปลายทางจะไม่สามารถซื้อได้ ดังนั้นจึงเป็นการยากที่จะประมาทจำนวนการสูญเสียรายได้


3
mview ใน magento2 คืออะไร
ก่อนอื่นสิ่งที่ฉันรู้: การจัดการดัชนีมีประโยชน์สำหรับการเพิ่มประสิทธิภาพการจัดเก็บ EAV มีหนึ่งข้อเสียมันจะเก็บข้อมูลลงในตารางที่แตกต่างกันดังนั้นการดึงข้อมูลใช้เวลานาน เพื่อที่เราจะเก็บข้อมูลไว้ในตารางเดียว เมื่อข้อมูลมีการเปลี่ยนแปลงเราจะอัปเดตตารางเดียวนี้ (ไม่มีอะไรนอกจากการอัปเดตการทำดัชนี) mysql trigger: ดำเนินการกระทำแบบสอบถามบางอย่างขึ้นอยู่กับการแทรก / ปรับปรุง / ลบบางตาราง ดังนั้นวีโอไอพีที่ใช้ทริกเกอร์เช่นเมื่อราคากำลังอัพเดทมันจะเก็บไว้entity_idในตารางการเปลี่ยนแปลง มีคำสั่งในการ devdocs Magento/Framework/Mviewสำหรับการดำเนินการเรียกใช้ คุณช่วยอธิบายโฟลว์ของฟังก์ชั่นนี้ได้ไหม ผมหมายถึงสิ่งที่เป็นview, action, processoretc?

2
ดัชนีติดอยู่ที่“ การประมวลผล”
ทั้งดัชนีการเขียนซ้ำ URL ผลิตภัณฑ์และการเชื่อมโยงหมวดหมู่ / ผลิตภัณฑ์ทำงานมาหลายวันแล้วตามผู้ดูแลระบบ Magento อย่างไรก็ตามไม่มีกระบวนการ reindex php ทำงานvar/locksโฟลเดอร์ว่างเปล่าและindex_processตาราง MySQL มีสถานะที่แตกต่างอย่างสิ้นเชิง: +------------+------------------------------+-----------------+---------------------+---------------------+--------+ | process_id | indexer_code | status | started_at | ended_at | mode | +------------+------------------------------+-----------------+---------------------+---------------------+--------+ | 1 | catalog_product_attribute | pending | 2014-01-03 18:17:32 | 2014-01-03 18:17:34 | manual | | 2 | catalog_product_price | pending | 2013-11-06 …
24 indexing  ee-1.13 

3
ดัชนีจะไม่ถูกต้องเมื่อใด
ฉันมีร้านค้าและทุกครั้งที่ดัชนีทั้งหมดไม่ถูกต้อง ฉันสังเกตเห็นว่าฉันไม่มีเงื่อนงำเมื่อดัชนีไม่ถูกต้อง คุณสามารถให้รายการกิจกรรม "ทั้งหมด" ซึ่งทำให้ดัชนีเหล่านี้อย่างน้อยหนึ่งรายการไม่ถูกต้องได้หรือไม่ คุณสมบัติของผลิตภัณฑ์ ราคาสินค้า แคตตาล็อกการเขียน URL ใหม่ ข้อมูลแบนของผลิตภัณฑ์ หมวดหมู่ผลิตภัณฑ์ ดัชนีการค้นหาแคตตาล็อก ข้อมูลการรวมแท็ก สถานะสินค้า
23 indexing 

3
Magento 2: โต๊ะแบนยังคงเป็นเรื่องน่าสนใจใช่ไหม
โต๊ะแบนยังเป็นสิ่งที่เราต้องกังวลใน Magento 2 หรือไม่? ฉันรู้ว่ามี UI ที่เราสามารถเปิดใช้งานตารางแบนได้ แต่ฉันไม่แน่ใจว่าพวกเขาได้รับการทดสอบดีเพียงใดและถ้าพวกเขาต้องการอีกต่อไป ถ้าตารางแบนมียังคงเป็นสิ่งที่ - ที่ / เมื่อทำคุณลักษณะสำหรับตารางแบนได้รับการสร้างขึ้นและ / หรือสร้างใหม่ สิ่งนี้เกิดขึ้นเมื่อทำดัชนีใหม่หรือไม่ หรือการกระทำ UI อื่น ๆ สามารถกระตุ้นการสร้างตารางแบนได้หรือไม่ มันเกิดขึ้นที่php bin/magento setup:di:compile? สถานที่อื่น ๆ? วีโอไอพีจะตัดสินใจอย่างไรหากต้องการทำให้แอททริบิวเป็นแอททริบิวต์แฟลต? จะทั้งหมดคุณลักษณะ EAV บี้? หรือมีคนอื่นซึ่งอาจจะไม่?

5
ข้อผิดพลาดของดัชนีหลังจากอัปเกรดเป็น EE 1.14.2.0: ไม่มีแค็ตตาล็อก catalog_product_entity_tmp_indexer
หลังจากฉันอัพเกรด Magento เป็น EE 1.14.2.0 cron enterprise_refresh_indexจะได้รับข้อผิดพลาดนี้เสมอ: ข้อยกเว้น 'PDOException' พร้อมข้อความ 'SQLSTATE [42S02]: ไม่พบตารางพื้นฐานหรือมุมมอง: 1146 ตาราง' catalog_product_entity_tmp_indexer 'ไม่มีอยู่' ใน /var/www/public_html/lib/Zend/Db/Statement/Pdo.php:228 ฉันไม่เข้าใจว่าทำไมไม่มีตารางนี้ วีโอไอพีไม่ควรสร้างมันในกระบวนการของดัชนีการรีเฟรช?

2
วิธีแก้สถานะตัวทำดัชนี“ ถูกระงับ” (n in backlog)
หนึ่งในตัวจัดทำดัชนีที่กำหนดค่าให้อัพเดตตามกำหนดเวลาจะถูกล็อคในสถานะ "หยุดชั่วคราว" และไม่ได้รับการอัปเดตอีกต่อไป ผลผลิตของ bin/magento indexer:status +----------------------------+------------------+-----------+-------------------------------+---------------------+ | Title | Status | Update On | Schedule Status | Schedule Updated | +----------------------------+------------------+-----------+-------------------------------+---------------------+ | ... | | | | | | IntegerNet_Solr | Reindex required | Schedule | suspended (101028 in backlog) | 2018-09-24 15:28:44 | | ... | | | …

1
ผลิตภัณฑ์บางอย่างหายไปในแคตตาล็อกตาราง _product_index_price!
ทุกคนสามารถช่วยฉันอธิบายการจัดทำดัชนีราคาใน Magento ได้หรือไม่ ฉันใช้เวอร์ชั่น 1.9 งานของฉัน : แสดงผลผลิตภัณฑ์เด่นในหน้าแรก โซลูชันของฉัน : แทนที่จะสร้างหมวดหมู่ที่เรียกว่า "ผลิตภัณฑ์เด่น" ฉันสร้างแอททริบิวต์ "is_featured" ดังนั้นฉันจึงกรองผลิตภัณฑ์ที่มีแอททริบิวนั้นเป็นจริงเพื่อให้ได้ผลลัพธ์ตามที่คาดหวัง ขึ้นอยู่กับวิดเจ็ตในตัวMage_Catalog_Block_Product_Widget_Newฟังก์ชั่นของฉันเพื่อรับชุดผลิตภัณฑ์ตามที่กำหนดไว้: protected function _getProductCollection() { /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = Mage::getResourceModel('catalog/product_collection'); $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds()); $collection = $this->_addProductAttributesAndPrices($collection) ->addStoreFilter() ->addAttributeToFilter('is_featured', array('eq' => true)) ->setPageSize($this->getProductsCount()) ->setCurPage(1); return $collection; } ผลลัพธ์: ผลิตภัณฑ์บางอย่างปรากฏขึ้น แต่บางผลิตภัณฑ์หายไป เมื่อการดีบัก SQL ฉันเห็น: SELECT `e`.*, …

3
MAGE_DIRS พารามิเตอร์ bootstrap ใน CLI
ในpub/index.phpรหัสต่อไปนี้จะใช้ในการตั้งค่าการเปลี่ยน URL สำหรับสื่อและสินทรัพย์คงที่เพื่อละเว้น "/ pub": $params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [ DirectoryList::PUB => [DirectoryList::URL_PATH => ''], DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'], DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'], DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'], ]; $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params); น่าเสียดายในสคริปต์ CLI ( bin/magento) ไม่มีอะไรเช่นนี้ ฉันพบชั้นเรียนMagento\Setup\Mvc\Bootstrap\InitParamListenerด้วยรหัสต่อไปนี้: $initParams = $application->getServiceManager()->get(self::BOOTSTRAP_PARAM); $directoryList = $this->createDirectoryList($initParams); แต่ฉันไม่เข้าใจว่าตัวจัดการบริการ Zend นี้ดึงข้อมูลและวิธีที่เป็นไปได้ที่จะมีอิทธิพลต่อข้อมูลอย่างไร ปัญหาที่เป็นรูปธรรมของฉันคือตัวสร้างดัชนีจะต้องสร้าง URL …

5
ทำดัชนีผลิตภัณฑ์เดียว
ฉันต้องการจัดทำดัชนีผลิตภัณฑ์ใหม่หลังการอัพเดต ตอนนี้ฉันใช้: $product = Mage::getModel('catalog/product')->loadByAttribute('sku', 'foobar'); // edit something $product->save(); $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId()); $stockItem->setForceReindexRequired(true); Mage::getSingleton('index/indexer')->processEntityAction( $stockItem, Mage_CatalogInventory_Model_Stock_Item::ENTITY, Mage_Index_Model_Event::TYPE_SAVE ); $product ->setForceReindexRequired(true) ->setIsChangedCategories(true); Mage::getSingleton('index/indexer')->processEntityAction( $product, Mage_Catalog_Model_Product::ENTITY, Mage_Index_Model_Event::TYPE_SAVE ); แต่มันไม่ทำงานความคิดใด ๆ PS: $product->getId()มีอยู่จริงและถูกต้อง

1
หมวดหมู่พาเรนต์แสดงผลิตภัณฑ์ในหมวดหมู่ย่อยแม้ว่าผลิตภัณฑ์ไม่ได้ถูกกำหนดให้กับหมวดหมู่พาเรนต์
สมมติว่าฉันมีหมวดหมู่เสื้อผ้าและหมวดหมู่นี้มีหมวดหมู่ย่อยเสื้อยืด ตอนนี้ฉันเพิ่มผลิตภัณฑ์ลงในหมวดเสื้อยืด (โดยทำเครื่องหมายที่กล่องในหน้าจอเพิ่มผลิตภัณฑ์) แต่ฉันไม่ตรวจสอบหมวดหมู่เสื้อผ้า ดังนั้นฉันคิดว่านี่หมายความว่าผลิตภัณฑ์จะปรากฏในหมวดหมู่เสื้อยืดที่ด้านหน้าเท่านั้นและไม่ได้อยู่ในหมวดหมู่เสื้อผ้าหลัก อย่างไรก็ตามผลิตภัณฑ์จะปรากฏในหมวดหมู่เสื้อผ้าและเสื้อยืด นี่เป็นปัญหาเนื่องจากหมวดหมู่เสื้อยืดเป็น "รวมอยู่ในเมนูการนำทาง"> ไม่มีหมวดหมู่นั่นคือควรจะซ่อนไว้ ผลิตภัณฑ์ทั้งหมดในหมวดหมู่มีการเปิดเผยแคตตาล็อกดังนั้นจึงไม่ปรากฏในผลการค้นหา ฉันตรวจสอบเรื่องนี้ค่อนข้างลึกและพบว่าปัญหาอยู่ที่การจัดทำดัชนีแคตตาล็อก Magento การรันตัวสร้างดัชนีหมวดหมู่ผลิตภัณฑ์จากระบบ> การจัดการดัชนีจะสร้างดัชนีMage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll()ขึ้นมาใหม่ ฟังก์ชันนี้เลือกข้อมูลที่หลากหลายจากตารางที่เกี่ยวข้องกับหมวดหมู่ต่างๆและไปป์ลงในตาราง catalog_category_product_index ซึ่งเป็นตารางที่ใช้ในการสร้างชุดผลิตภัณฑ์สำหรับหน้าหมวดหมู่ ใครบ้างมีคำแนะนำเกี่ยวกับวิธีการซ่อน / ป้องกันผลิตภัณฑ์จากหมวดหมู่ย่อยที่ปรากฏในหมวดหมู่ผู้ปกครองของพวกเขา? ฉันใช้ Magento 1.4.1.0 หมวดเสื้อผ้าถูกตั้งค่าเป็น Anchor และประเภทเสื้อยืดไม่ได้ ใช้หมวดหมู่เรียบตั้งเป็นใช่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.