問題
- Liferayが以前のバージョンでは異なる名前だった特定のインデックスにアクセスしようとする動作に遭遇するかもしれません。
- 通常、これは何の問題も引き起こさないが、ESのインストールに特定の制限があるため、以下のようなエラーが発生する可能性がある:
ERROR [main][RankingIndexCreationBundleActivator:56] bundle com.liferay.portal.search.tuning.rankings.web:3.0.57 (474)[com.liferay.portal.search.tuning.rankings.web.internal.index.creation.activator.RankingIndexCreationBundleActivator(7573)] : The activate method has thrown an exception
java.lang.RuntimeException: org.elasticsearch.ElasticsearchStatusException: ElasticsearchStatusException[method [HEAD], host [http://127.0.0.1:9201], URI [/liferay-search-tuning-rankings?include_type_name=true], status line [HTTP/1.1 403 Forbidden]]; nested: ResponseException[method [HEAD], host [http://127.0.0.1:9201], URI [/liferay-search-tuning-rankings?include_type_name=true], status line [HTTP/1.1 403 Forbidden]];
at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:2458) ~[?:?]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:2184) ~[?:?]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:2137) ~[?:?]
at org.elasticsearch.client.IndicesClient.exists(IndicesClient.java:1321) ~[?:?]
Environment
- Liferay DXP 7.2 SP3/FP8+
解決策
- このエラーメッセージは、通常は何の問題も引き起こさないので、無視しても差し支えない。
- あるいは、古いインデックス名のユーザーにアクセス権を与えることで回避することもできる。
追加情報
-
このインデックスが起動時にアクセスされるのは、以前のバージョン(7.2など)ではインデックスが
liferay-search-tuning-rankings
しかし、7.2 SP3/FP8では、結果のランキング(とシノニムセットも)にマルチテナントが導入され、その時点でインデックスの名前に<プレフィックス>-<companyId>-search-tuning-rankings
形式を使用するようになった。 - つまり、7.2 SP3+/FP8+のバージョンでは、ポータルが古いバージョンからアップグレードされたときにデータが失われないように、古いインデックスから新しいインデックスにドキュメントをインポートするプロセスが必要でした。
- 詳細は以下の記事をご覧ください:DXP 7.2 FP8/SP3 および DXP 7.3+ におけるマルチテナント Elasticsearch インデックス名のサポート:検索チューニングおよびワークフローメトリクスに関する重要な変更点
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン