問題
この記事では、Elasticsearchサーバが最大総フィールド数のインデックス制限に達した場合の解決策を提供しています。 その結果、新しいコンテンツがインデックスに追加されていません。
同時に、コンソールはこのエラーを発生させます。
2019-01-24 19:01:49.069 ERROR [liferay/search_writer/SYSTEM_ENGINE-423][ElasticsearchUpdateDocumentCommandImpl:50] failure in bulk execution:_[1]: index [liferay-20116], type [LiferayDocumentType], id [com.liferay.journal.model.JournalArticle_PORTLET_2557174], message [java.lang.IllegalArgumentException: Limit of total fields [10000] in index [liferay-20116] has been exceeded]_[3]: index [liferay-20116], type [LiferayDocumentType], id [com.liferay.journal.model.JournalArticle_PORTLET_2556975], message [java.lang.IllegalArgumentException: Limit of total fields [10000] in index [liferay-20116] has been exceeded] [Sanitized]
環境への配慮
- ライフレイDXP 7.0
- Liferay DXP 7.1
- Liferay DXP 7.2
決議
- この問題は、 https://issues.liferay.com/browse/LPS-103224で解決します。
- LPS-103224の修正を含むHotfixやfixpackをインストールして有効にする必要があります。
- Liferay のインストールに LPS-103224 の修正が適用されていることを確認してください。
- システム設定→ダイナミックデータマッピング→ダイナミックデータマッピングインデクサへ
- "レガシーダイナミックデータマッピングインデックスフィールドを有効にする "を非アクティブにします。 チェック
- 完全な再インデックスを実行します。
- 回避策として、そのLPSが適用できない場合は、Elasticsearchのマッピング制限を変更することができますが、Elasticsearchのスループットに影響を与える可能性があります。
- index.mapping.total_fields.limitを追加します。 <value> をシステム設定の "Additional Index Configurations" プロパティの Elasticsearch/Elasticsearch 6 エントリに追加します。 このrは、完全な再インデックスを実行することを条件としています!
追加情報
DXPによるElasticsearchのインデックスのフィールド総数の変更 (DXP 7.1、7.2の場合)