はじめに
AWS上に既にある、またはこれから構築するデータ基盤でクイックに全文検索をしたい場合の選択として、Amazon OpenSearch Service を利用するのはありなのか、実際に動かして試しながら確認したときの記録を、いつかの思い出し用として記載しておこうと思います。
スクショをベースにしておいて、後でこんな感じのサービスだったというのを思い出せるようにしています。
前提
- 2024/3/4に試した内容です。
- OpenSearchはサーバーレス版のAmazon OpenSearch Serverlessが選択できますが、AWS Glueからはサーバーレス版は接続ができないようです。サーバーレス版ではないほうは後述しますが、接続できました。
やってみた
OpenSearchを使えるようにする
AWS GlueでOpenSearchに接続できるようにする
-
- opensearch.net.http.auth.user、opensearch.net.http.auth.passをキーとして作成
- 参考:OpenSearch サービス接続の設定
AWS GlueでOpenSearchにデータを入力する
- GlueでデータソースをS3にする
- GlueでデータターゲットをOpenSearchにする(インデックス名は「Sample」とする)
- Run結果(Job Rundsのリストの一番上が今回のJob)
- ドメインの情報を表示する画面上どうなっているか
Glueで指定したインデックス「Sample」ができている - インデックス「Sample」の内容
- OpenSearch Dashboards上はどうなっているか
インデックス「Sample」の内容が確認できる
OpenSearchでクエリーしてみる
- 全件抽出
GET sample/_search
{
"query": {
"match_all": {}
}
}
- 条件指定抽出
GET sample/_search
{
"query": {
"match": {
"COL1":"bbb"
}
}
}
漫画「はじめの一歩」についてのWikipediaの記載を使ってOpenSearchでクエリーしてみる
GET sample/_search
{
"query": {
"match_phrase": {
"COL2": "一歩"
}
}
}
「一歩」を含んだ項目の値をスコアと共に出してくれている。
もっといろんなクエリーの仕方がありそうだが、今回ははじめの一歩なのでいったんここまで。
まとめ
試してみて、OpenSearchの使い方についてはわからないことばかりではあるものの、クイックに導入して利用することができそうなことはわかりました。
自分の思い出し用ではありますが、取っ掛かりとして誰かの参考になれば幸いです。