front-commerce-oss/magento1-elasticsuite-indexer

Magento ElasticSearch 索引器

2.0.1 2023-10-11 17:19 UTC

This package is auto-updated.

Last update: 2024-09-11 19:20:34 UTC


README

本模块是从 ElasticSuite for Magento 1 分支出来的,旨在为 Magento 1 提供与最新 ElasticSuite for Magento 2 架构兼容的 ElasticSearch 索引。
我们建议您使用 OpenMage LTS 以支持仍受支持的 Magento 1 版本。

免责声明:我们目前不计划支持从 Magento 1 前端查询索引。但是,如果您愿意接管这一方面,我们将很乐意将您添加为维护者。请联系我们

状态:此模块已被一些 Front-Commerce / Magento 1 项目在生产中使用

安装

您可以使用 composermodman 或通过复制您 Magento 安装中的 src/ 目录的内容来安装该模块。

安装后,您可以在管理面板中登录并配置它。

配置

您可以从 系统 > 配置 > 目录 > 目录搜索 页面和部分配置该模块。首先,您需要确保搜索引擎参数设置为 Smile Serchandizing Suite。

配置 ElasticSearch 服务器和端口,并保存设置。

然后,通过运行:php shell/indexer.php reindexall(或 n98 index:reindex:all)来重新索引您的商店。

提示:如果在以下部分遇到问题,请查看。

故障排除

以下是最常见的错误及其解决方法的概述。

FORBIDDEN/12/index read-only / allow delete (api) 错误

此错误可能在重新索引过程中出现。有 2 个可能的原因。

索引处于只读模式

由于某些原因,您的索引可能处于只读模式。在这种情况下,您应按照此处详细说明重新配置索引。

curl -XPUT "https://:9200/_settings" -H'Content-Type: application/json' -d'
{
  "index": {
    "blocks": {
      "read_only_allow_delete": "false"
    }
  }
}'

磁盘上剩余空间不足

另一个原因可能是您的硬盘驱动器上的空间不足(~ <10 Go)。解决方案是在其上腾出一些空间!

尝试清空您的回收站,删除未使用的 Docker 镜像(docker image prune -a)或其他类似的东西!注意:ncdu 是您的朋友。

致命错误:未捕获错误:调用未定义的方法 Mage_CatalogSearch_Model_Resource_Fulltext_Engine::getCurrentIndexesForScopes()

这是一个已知的模糊的错误消息,看起来像下面的错误

Fatal error: Uncaught Error: Call to undefined method Mage_CatalogSearch_Model_Resource_Fulltext_Engine::getCurrentIndexesForScopes() in /var/www/.modman/magento1-elasticsuite-indexer/src/app/code/community/Smile/ElasticSearch/Model/Indexer/Fulltext.php:189
Stack trace:
#0 /var/www/.modman/magento1-elasticsuite-indexer/src/app/code/community/Smile/ElasticSearch/Model/Indexer/Fulltext.php(175): Smile_ElasticSearch_Model_Indexer_Fulltext->getAllIndexes()
#1 /var/www/htdocs/app/code/core/Mage/Index/Model/Process.php(212): Smile_ElasticSearch_Model_Indexer_Fulltext->reindexAll()
#2 /var/www/htdocs/app/code/core/Mage/Index/Model/Process.php(260): Mage_Index_Model_Process->reindexAll()
#3 phar:///usr/local/bin/n98/src/N98/Magento/Command/Indexer/AbstractIndexerCommand.php(218): Mage_Index_Model_Process->reindexEverything()
#4 phar:///usr/local/bin/n98/src/N98/Magento/Command/Indexer/AbstractIndexerCommand.php(187): N98\Magento\Command\Indexer\AbstractIndexerCommand->executeProcess(Object(Symfony\Component\Console\Output\Console in /var/www/.modman/magento1-elasticsuite-indexer/src/app/code/community/Smile/ElasticSearch/Model/Indexer/Fulltext.php on line 189

错误是在 您的 ElasticSearch 配置不正确 时触发的。解决方案是仔细检查管理员中的设置。如果问题仍然存在,请联系我们。

注意:错误是因为在这种情况下 \Smile_ElasticSearch_Model_Resource_Engine_Elasticsearch::getStatus() 返回 false,而我们的代码尚未优雅地处理这种情况。我们应该为开发者抛出一个更清晰的异常。希望在未来版本中!请随意为我们提供 PR。

许可证

Apache-2.0