概要
StrapiとElasticsearchとの連携にあたり、以下の記事が参考になりました。
https://punits.dev/blog/integrating-elasticsearch-with-strapi/
ソースコードも公開されています。
https://github.com/geeky-biz/strapi-integrate-elasticsearch
ここでは、上記の記事を参考にして、Amazon OpenSearchと連携するなど、一部カスタマイズした内容についてメモします。
カスタマイズしたソースコードは以下です。
https://github.com/nakamura196/strapi-integrate-opensearch
修正点
以下について、記事ではindexing_typeとなっていますが、indexing_request_typeとする必要がありました。
またElasticsearchではなく、Amazon OpenSearchを使用するにあたり、以下のライブラリをインストールする必要があります。
認証の方法はいくつかあると思いますが、ここでは以下のように変更しました。
インデックスへの登録および削除の処理についても、以下のように修正する必要がありました。
上記のような修正の結果、StrapiとAmazon OpenSearchを接続させることができました。
elastic/elasticClient.js および src/api/search/controllers/search.js を変更することで、APIの出力結果もカスタマイズできました。これにより、ElasticsearchのAggregationsを使用することができるようになりました。(私の調査不足により、Strapi単体でも実現できるかもしれません。)
まとめ
StrapiとAmazon OpenSearchの連携にあたり、参考になりましたら幸いです。