Sulu Massive Search Bundle 异常

Sulu Massive Search Bundle exception

来电后 bash

bin/adminconsole -vvv massive:search:reindex && bin/websiteconsole massive:search:reindex

我们在即将成为生产环境的 sulu 1.6 中遇到以下永久性错误:

provider "doctrine_orm"

-- reindexing "0" instances of "Sulu\Bundle\ContactBundle\Entity\Account"

    0 [>---------------------------] < 1 sec 22.0 MiB

-- reindexing "5" instances of "Sulu\Bundle\ContactBundle\Entity\Contact"

 5/5 [============================] 100% < 1 sec/< 1 sec 26.0 MiB

-- reindexing "15" instances of "Sulu\Bundle\MediaBundle\Entity\FileVersionMeta"

 15/15 [============================] 100% < 1 sec/< 1 sec 26.0 MiB

-- reindexing "0" instances of "Sulu\Bundle\CategoryBundle\Entity\CategoryTranslation"

    0 [>---------------------------] < 1 sec 26.0 MiB

provider "sulu_structure"

-- reindexing "5" instances of "Sulu\Bundle\ContentBundle\Document\HomeDocument"

 0/5 [>---------------------------]   0% < 1 sec/< 1 sec 30.5 MiB[2019-10-07 23:56:19] console.ERROR: Error thrown while running command "-vvv massive:search:reindex". Message: "Call to a member function getLocalization() on null" {"exception":"[object] (Error(code: 0): Call to a member function getLocalization() on null at /app/vendor/sulu/sulu/src/Sulu/Component/Content/Compat/LocalizationFinder.php:40)","command":"-vvv massive:search:reindex","message":"Call to a member function getLocalization() on null"} []
23:56:19 ERROR     [console] Error thrown while running command "-vvv massive:search:reindex". Message: "Call to a member function getLocalization() on null"
[
  "exception" => Error {
    #message: "Call to a member function getLocalization() on null"
    #code: 0
    #file: "./vendor/sulu/sulu/src/Sulu/Component/Content/Compat/LocalizationFinder.php"
    #line: 40
    trace: {
      ./vendor/sulu/sulu/src/Sulu/Component/Content/Compat/LocalizationFinder.php:40 { …}
      ./vendor/sulu/sulu/src/Sulu/Component/Content/Document/Subscriber/FallbackLocalizationSubscriber.php:118 { …}
      ./vendor/sulu/sulu/src/Sulu/Component/Content/Document/Subscriber/FallbackLocalizationSubscriber.php:93 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:214 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php:44 { …}
      ./vendor/sulu/document-manager/lib/Collection/QueryResultCollection.php:85 { …}
      ./vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Search/Reindex/StructureProvider.php:105 { …}
      ./vendor/massive/search-bundle/Command/ReindexCommand.php:200 { …}
      ./vendor/massive/search-bundle/Command/ReindexCommand.php:150 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:255 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:981 { …}
      ./vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:86 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:254 { …}
      ./vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:74 { …}
      ./vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:147 { …}
      ./bin/console.php:23 {
        › $application = new Application($kernel);
        › $application->run($input);
        › 
        arguments: {
          $input: Symfony\Component\Console\Input\ArgvInput {#1 …}
        }
      }
      ./bin/adminconsole:7 { …}
    }
  },
  "command" => "-vvv massive:search:reindex",
  "message" => "Call to a member function getLocalization() on null"
]

我确实已经手动删除了 var/indexes,但问题依然存在。

我已将搜索标签 <tag name="sulu.search.field" /> 添加到 text_linetext_editor 字段。

有没有人有解决这个问题的经验?

我在本地通过删除并重新初始化整个数据库来修复它,但在我们的暂存系统中我不想这样做 ;)。

非常感谢!

使用以下命令确保已删除或重命名的空间的空间数据不存在:

bin/adminconsole doctrine:phpcr:shell 'query "SELECT jcr:uuid FROM [nt:base] AS n WHERE ISCHILDNODE(n, \'/cmf\')"'
bin/websiteconsole doctrine:phpcr:shell 'query "SELECT jcr:uuid FROM [nt:base] AS n WHERE ISCHILDNODE(n, \'/cmf\')"'

如果已删除的空间仍有旧数据,请使用以下命令将其删除:

bin/adminconsole doctrine:phpcr:node:remove /cmf/oldwebspacekey
bin/websiteconsole doctrine:phpcr:node:remove /cmf/oldwebspacekey

建议在 运行 删除命令之前创建备份。