問題
- Liferayが起動すると、以下のようなエラーが発生します:
ERROR [liferay/schedulerdispatch-5][ElasticsearchIndexSearcher:169] java.lang.RuntimeException: org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [query], all shards failed; shardFailures {[uLTKGY0yQGOhY7um23rIOw][liferay-20101][0]: RemoteTransportException[[node-1][10.241.20.11:9300][indices:data/read/search[phase/query]]]; nested: IllegalArgumentException[Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [localizedtitleenUS_sortable] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]; } ......
環境
- Liferay DXP 7.2
解像度
- ESクラスタが他のアプリケーションに対応していない場合は、elasticsearch.ymlに
action.auto_create_index:false
を追加し、完全な再インデックスを行ってもよいでしょう。 - 考えられる根本的な原因:完全な再インデックスを実行すると、インデックス(したがってマッピング)が削除され、その後インデックスが再作成され、マッピングが設定されます。 理論的には、インデックス作成と「キャッチオール」ダイナミックテンプレートの投入(インデックス作成後に発生)の間に、これらのフィールドを持つドキュメントがelasticに送信され、マッピングが自動作成されました。
追加情報
- この設定については、Elasticのドキュメントを参照してください。
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index-management-settings.html
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン