問題
- DXP 7.3 update 30を DXP 2023.Q4.4 にアップグレードしました。 アップグレードを実行した後、インデックス作成プロセスが99%で止まっているようです。 どうやら失敗したようで、ログには次のようなエラーがいくつか見られる:
ERROR [default-50][jericho:211] (r1,c2162,p2161)のStartTagテーブルに、位置(r1,c2266,p2265)に無効な文字を含む属性名があります。
- 膨大な量のウェブコンテンツ(アップグレード中のウェブコンテンツは数千件)があり、ウェブコンテンツ内の無効なHTMLが原因でインデクサが失敗していることがわかりました。 https://help.liferay.com/hc/en-us/articles/22875397024525-HTML-Parsing-errors-when-reindexing-journal-articles-jericho。 しかし、すべての古いデータを保持する必要があるため、この解決策は実現不可能である。
環境
- Liferay DXP 7.4 四半期リリース 2023.Q4
解像度
- この場合、膨大なデータのためにインデックスが動かなくなることが予想される。 インデックス作成が完了するまでに、より長い時間がかかるようだ。
-
com.liferay.portal.search.elasticsearch7.internal.ElasticsearchIndexSearcher 右上のメインメニュー を開いてください。 コントロールパネル --> システム --> サーバ管理 --> ログレベルにアクセスし、右上の「+」をクリックしてカテゴリを追加します: com.liferay.portal.search.elasticsearch7.internal.ElasticsearchIndexSearcher
ログレベルは INFOに設定する必要があります。 - このログレベルを保存した後、完全な再インデックスを開始し、失敗したかどうかをログで確認する。 ほとんどの場合、インデックス作成プロセスは終了し、ログにこのメッセージが表示されます:
INFO [liferay/background_task-7][ReindexPortalBackgroundTaskExecutor:81] Finished reindexing company xxxxx with execution mode full
- インデックス作成が行き詰まったら、ウェブコンテンツの最新版をインデックスする必要がある。 以下の手順に従ってください:
- Control Panel > System Settings > Content and Data > Web Content > Virtual Instance Scope > Web Content > Index All Article Versions Enabled から、「Index All Article Versions Enabled」のチェックを外す。 を選択し、設定を保存します。
- 記事のreindexCompanyWebContents.groovyスクリプトを実行します。 必ず "companyId "を変更してください!
- ログをチェックして、問題のあるウェブコンテンツをすべて収集する。 スクリプトは、インデックス作成中にすべてのウェブコンテンツを出力するので、
Indexing: articleId=
...のメッセージの直後にエラーがあるものを集める必要がある。 - これらのウェブコンテンツのHTMLを見直し、問題を修正する。
- コントロールパネル > 検索 > ウェブコンテンツ > ウェブコンテンツ記事 (com.liferay.journal.model.JournalArticle) からウェブコンテンツのインデックスを再作成します。