Magento 2重新索引-一个或多个索引器无效。确保您的Magento Cron作业正在运行


78

我找不到在magento 2上的大规模动作中重新编制索引的方法。

似乎您需要从cronjob运行它。是否有其他方法可以像过去在Magento 1.x(php shell/indexer.php -reindexall)中一样从后端或命令行为magento 2中的数据重新编制索引?

在此处输入图片说明


抱歉,但是我是Magento的新手。我已经在XAMPP本地安装了Magento,我使用的是Windows 7,我想问我该怎么办?我收到相同的消息,
Alex4842

1
@ Alex4842在这里也是一样。在Win 10上运行的Magento发现这一点:magento.stackexchange.com/questions/111132/...
穆罕默德Joraid

您可以通过此指南在后端重新索引mageplaza.com/kb/how-reindex-magento-2.html
说真话

Answers:


117

要在magento 2中重新编制索引,请转到CLI,然后进入magento安装的根文件夹并运行以下命令:

php bin/magento indexer:reindex



对于使用Mac的用户,他们可以将目录更改为installation_dir / bin并编写此命令。/magentoindexer :: reindex
Harit 2015年

2
它说您可以在3分钟内接受xD
Harit 2015年


我在第93行的/Applications/MAMP/htdocs/Magento-CE-2.1.2-2016-10-11-11-16-47/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php中收到解析错误
奥利塔克(Oli Tuck)

22

在CLI中运行此命令

php bin / magento索引器:reindex

如果只想重新索引一个索引器,则编写以下命令:

php bin / magento索引器:reindex indexer_name。

indexer_name可以通过键入以下命令在哪里找到:

PHP的bin / magento索引器:信息


6

这是使用Magento 2 CLI索引命令完成工作的方法

进入Magento / bin目录cd magento_folder / bin中提供的Magento CLI命令文件,并在终端或腻子中使用magento直接运行您的命令。

这是如何在Magento 2中建立索引的工作方式

获取Magento 2中可用索引器的列表

PHP的bin / magento索引器:信息

如何检查索引器的状态

以下命令将为您提供所有索引器的状态,无论是需要索引还是已准备好索引。

php bin / magento索引器:状态

您还可以检查单个索引器的状态:假设我要检查catalog_category_product的状态

php bin / magento索引器:状态catalog_category_product

如何重新索引Magento 2中所有可用的索引

php bin / magento索引器:reindex

如果您填满内存限制,请尝试以下命令

php bin / magento -dmemory_limit = 2G magento indexer:reindex





1

在Magento根CLI上,运行以下命令

php bin/magento indexer:reset

然后运行以下命令

php bin/magento indexer:reindex

0

替代解决方案php bin/magento indexer:reindex在cronjob上添加命令。

我已经遵循了,它一直在我的系统上工作



0

一种。从Magento管理员重新索引*有时并非所有索引器都使用admin reindex>也通过SSH检查重新索引

  1. 转到系统>索引管理并检查索引器状态
  2. 选择标记为“需要重新索引”的项目,然后转到“操作”>“按计划更新”

这将触发选定索引器的重新索引。

重要说明:有时,即使时间和日期在magento admin中显示为已更新,有时也并非所有索引器都使用admin reindex进行了重新索引。我们建议使用下面介绍的SSH / CLI重新索引方法仔细检查重新索引过程。

重新索引模式:您可以将索引器设置为“保存时更新”,并且在保存管理员配置时将对存储实体建立索引,或者将索引设置为“按计划更新”,并且索引器将被定期重新索引(默认为每天一次)。为了使“按计划更新”工作正常,请确保您的cron作业在服务器上正确运行。您的托管合作伙伴或开发团队可以帮助您进行cron作业配置。

在此处输入图片说明

做完了!

b。通过SSH / CLI重新索引(推荐)

  1. 连接到项目根目录中的Magento 2安装。(通常在public_html或yourmagentoinstallation.com/html下)

  2. 使用以下命令重新索引所有Magento 2索引器:

php bin/magento indexer:reindex

您将收到类似的结果,如下所示:

Design Config Grid索引已在00:00:00成功重建

客户网格索引已在00:00:00成功重建

类别产品索引已在00:00:00成功重建

产品类别索引已在00:00:00成功重建

产品价格指数已在00:00:01成功重建

产品EAV索引已在00:00:01成功重建

目录搜索索引已在00:00:01成功重建

股指已在00:00:00成功重建

目录规则产品索引已在00:00:01成功重建

目录产品规则索引已在00:00:00成功重建

在此处输入图片说明

  1. 检查索引器的状态,并确定仍需要单独重新索引的索引器,有时常规重新索引不适用于所有索引器

    php bin/magento indexer:status

您将收到类似的结果,如下所示:

设计配置网格:就绪

客户网格:就绪

类别产品:就绪

产品类别:Ready

产品价格:准备就绪

产品EAV:就绪

目录搜索:就绪

库存:准备就绪

目录规则产品:需要重新索引

目录产品规则:就绪

在此处输入图片说明

  1. 显示需要用于单个重新索引的索引器列表和相应的索引器ID。

    php bin/magento indexer:info

您将收到类似的结果,如下所示:

design_config_grid设计配置网格

customer_grid客户网格

catalog_category_产品类别产品

catalog_product_category产品类别

catalog_product_price产品价格

catalog_product_attribute产品EAV

catalogsearch_fulltext目录搜索

cataloginventory_stock库存

catalogrule_rule目录规则产品

catalogrule_product目录产品规则

在此处输入图片说明

  1. 使用以下命令为状态为“需要重新索引”的每个索引器重新索引

    php bin/magento indexer:reindex [catalog_category_flat]

例: php bin/magento indexer:reindex catalogrule_rule

php bin/magento indexer:reindex design_config_grid customer_grid
php bin/magento indexer:reindex catalog_category_product
php bin/magento indexer:reindex catalog_product_category
php bin/magento indexer:reindex catalog_product_price
php bin/magento indexer:reindex catalog_product_attribute
php bin/magento indexer:reindex catalogsearch_fulltext
php bin/magento indexer:reindex cataloginventory_stock
php bin/magento indexer:reindex catalogrule_rule
php bin/magento indexer:reindex catalogrule_product
  1. 使用步骤2中的命令再次检查索引器的状态,现在所有索引器都应为“就绪”。

做完了!


0

有时为了简化起见,您可能想直接从管理员重新编制索引而不涉及cron(尤其是如果您尚未设置cron作业并且该站点仍在开发中)。在这种情况下,您可以使用免费扩展名Admin Reindex [M2],该扩展名允许您从admin重新编制索引。

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.