Questions tagged «indexing»

有关Magento索引器的问题。这包括平面目录索引。对于MySQL索引,请改用“ mysql -indexes”标签。

7
价格重新编制索引导致结帐时数据库死锁
我遇到了一个问题,我认为产品价格重新索引编制过程在结帐过程中导致了死锁异常。 我在结帐过程中捕获了此异常: 订单转换异常: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 no 329624 n bits 352 index `PRIMARY` of …

1
为什么对EAV和标签没有部分重新索引?
这个问题困扰了我一段时间。 为什么在Magento 1.13.xx中引入的改进错误修复程序称为部分重新索引,却没有涵盖“产品属性”和“标签聚合数据”索引器?为什么这两个必须手动重新索引? 在我看来,EAV指数是最关键的指标之一。没有部分重新索引意味着在每次销售(有些人拥有)之后,索引将失效,这意味着分层导航不再有效,这将导致数据显示不一致和销售损失。 我是否缺少明显的东西? 更新: 因此,这里是此bug的描述。一旦完成销售并且产品缺货,分层导航将仅针对简单产品而不是可配置产品(未测试捆绑和分组)反映产品属性的更改。 因此,假设您的目录中有一个可配置的产品(如T恤)有不同的尺寸,并且“尺寸”属性为“可过滤(带有结果)”。然后,在相应类别或搜索结果的分层导航中,您将看到尺寸部分,其中列出了所有可用尺寸。如果完成其中一项销售后,某个尺寸的商品缺货,您可能会希望它从分层导航中消失。除非刷新属性索引和刷新块缓存,否则不会发生这种情况。 这个错误真的很关键。这是两种威胁。首先,最终客户在分层导航中看到自己的尺寸,然后发现实际上不可用,这会让您的商店感到沮丧。更糟糕的是,一旦产品重新入库,在分层导航中就不会显示出来,因此最终客户将无法购买。因此,很难低估收入损失的数额。


3
magento2中的mview是什么?
首先我所知道的: 索引管理对于提高商店性能很有用。 EAV 有一个缺点,它将数据存储到不同的表中,因此检索数据非常耗时。 这样我们就可以将数据存储到单个表中。更改数据后,我们将更新此单个表(索引更新除外) mysql trigger:根据某些表的插入/更新/删除执行一些查询操作。 因此,magento例如使用触发器在价格更新时将其存储entity_id到changelog表中。 devdocs中有一条声明,使用来实现触发器magento2 Magento/Framework/Mview。 谁能解释这个功能的流程吗? 我的意思是view,action,processor等?

2
索引停留在“处理”上
根据Magento管理员的说法,“产品网址重写”索引和“类别/产品”关联已运行了几天 但是,没有正在运行的reindex php进程,该var/locks文件夹为空,并且index_processMySQL表的状态完全不同: +------------+------------------------------+-----------------+---------------------+---------------------+--------+ | 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 21:26:32 | 2013-11-06 21:26:32 | manual | | 3 …
24 indexing  ee-1.13 

3
索引何时失效?
我有一家商店,所有时间所有索引均无效。我注意到索引无效时我不知道。 您能给我一个“所有”事件的列表,这些事件使一个或多个这些索引无效吗? 产品属性 产品价格 目录URL重写 产品平面数据 分类产品 目录搜索索引 标签汇总数据 库存状况
23 indexing 

3
Magento 2:平板餐桌还可以吗?
在Magento 2中,我们仍然需要担心餐桌吗?我知道有一个可以打开平板的UI,但是我不确定它们是否经过了良好的测试,甚至不确定是否需要它们。 如果平表都还是一件事-在那里/时做平表的属性获取生成和/或再生。这仅在重新编制索引时发生吗?还是其他UI操作可以触发平面表生成?它发生在php bin/magento setup:di:compile吗?其他地方? 另外-Magento如何确定是否需要将属性设为扁平属性?所有 EAV属性是否都变平了?还是有其他可能不是?

5
升级到EE 1.14.2.0后的索引错误:表catalog_product_entity_tmp_indexer不存在
在将Magento升级到EE 1.14.2.0之后,cron enterprise_refresh_index总是会收到以下错误: 消息“ SQLSTATE [42S02]”的异常“ PDOException”:未找到基表或视图:1146 /var/www/public_html/lib/Zend/Db/Statement/Pdo.php:228中的表“ catalog_product_entity_tmp_indexer'不存在” 我不明白为什么这个表不存在。Magento不应在刷新索引的过程中创建它吗?

2
如何解决“暂停”的索引器状态(积压中的n)
被配置为按计划更新的索引器之一被锁定为“已暂停”状态,并且不再获取更新。 输出 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
表catalog_product_index_price中缺少某些产品!
任何人都可以帮助我阐明Magento中的价格指数吗?我正在使用1.9版。 我的任务:将特色产品渲染到主页中。 我的解决方案:而不是创建名为“特色产品”的类别。我创建了一个属性“ is_featured”,因此只过滤该属性为true的产品即可获得预期的结果。 基于内置的小部件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`.*, `cat_index`.`position` AS `cat_index_position`, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, …

3
CLI中的MAGE_DIRS引导程序参数
在中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 Service Manager在哪里检索数据以及如何影响它。 我的具体问题是,索引器必须生成完整的URL,并且当前这样做的地方就像http://magento.local/pub/media/...我需要的那样http://magento.local/media/... 如何告诉CLI虚拟主机指向的pub“发布”不应该是URL的一部分? 理想情况下,该方法无需依赖其他CLI参数或环境变量即可工作。

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
父类别将产品显示在子类别中,即使未将产品分配给父类别
假设我有一个类别,服装,此类别有一个子类别,T恤。 现在,我将产品添加到“ T恤衫”类别中(通过选中“添加产品”屏幕中的复选框),但是我没有选中“服装”类别。因此,我认为这意味着该产品只会出现在前端的T恤类别中,而不出现在父类别的服装中。 但是,该产品出现在“服装”和“ T恤”类别中。 这是一个问题,因为T恤类别是“包含在导航菜单中”>“无类别”,即应该被隐藏。类别中的所有产品都具有目录的可见性,因此它们不会出现在搜索结果中。 到目前为止,我已经对此进行了深入研究,发现问题出在Magento目录索引上。从“ 系统”>“索引管理”运行“类别产品”索引器,将重建索引,运行Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll()。 此功能从几个与类别相关的表中选择各种数据,并将其通过管道传送到catalog_category_product_index表中,该表用于生成类别页面的产品集合。 是否有人对如何在其父类别中出现的子类别中隐藏/防止产品产生任何建议? 我正在使用Magento 1.4.1.0。“服装”类别设置为“锚点”,而“ T恤衫”类别未设置。使用平面类别设置为是。

2
质量作用指数过程
我们遇到的问题是mass_action索引过程似乎永远不会执行。这具有该作业的作业数据随着时间的推移而显着增长的副作用。 在我们的案例中,几天的工作数据增长到了几MB。 mysql> select type, entity, count(*), avg(length(new_data)), max(length(new_data)) from index_event group by type, entity; +-----------------------+--------------------------------+----------+-----------------------+-----------------------+ | type | entity | count(*) | avg(length(new_data)) | max(length(new_data)) | +-----------------------+--------------------------------+----------+-----------------------+-----------------------+ | catalog_reindex_price | catalog_product | 1368 | 442.7982 | 443 | | mass_action | catalog_product | 1 | 6176981.0000 | 6176981 | …

3
通过SSH /腻子重新索引magento
我已经通过登入了我的Magento安装ssh/putty,然后我跑到cd public_html我的根文件夹,然后运行以下命令: php indexer.php --reindex catalog_product_attribute 但是什么也没有发生,我只是得到一个错误,说“找不到indexer.php”。 我看过里面public_html的文件夹的cPanel并没有命名的文件indexer.php,只index.php和index.php.sample。 有人可以帮忙吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.