Amazon OpenSearch Serviceを触ってみた(動かせるサンプルコードあり)

Amazon OpenSearch Serviceとは?

分散検索が可能なDBです。
1つのクエリを複数のノードで処理する事で検索速度をスケールさせる事ができます。

以前はAmazon Elasticsearch ServiceとしてElasticsearchをベースに提供されていましたが、2021年に OpenSearch プロジェクト(OSS)としてフォークしました。
詳細ページ

OSSなのでソースコードは公開されており、ローカルで動作させる事も可能です。
https://github.com/opensearch-project/opensearch

本記事では、OpenSearchの主要な機能を紹介しているほか、動かせるサンプルコードを用意しています。

サンプルコードの紹介

TerraformでOpenSearchを作成しDocker(go言語)で操作するサンプルコードを作成しました。
使い方はリポジトリのREADMEを参照してください。

https://github.com/t-kuni/aws-open-search-example

リンク集

OpenSearchの公式ドキュメント、ライブラリのリンクです。

公式ドキュメント
https://opensearch.org/docs/1.2/#

APIリファレンス
https://opensearch.org/docs/1.2/opensearch/rest-api/index/

Go言語向けのクライアントライブラリ
https://github.com/opensearch-project/opensearch-go

OpenSearch Dashboards とその機能について

OpenSearch Dashboards は OpenSearchのデータに対して検索や可視化を行うダッシュボードです。

OpenSearchとは別プロセスとして起動します。

OpenSearchのクラスタを作成すると自動的に作成され、コンソール上からURLを確認できます。

クラスタ作成時に指定したマスターユーザのIDとパスワードを使用してログインできます。

Index Patterns

OpenSearch DashboardsからOpenSearchのデータを読み込む際の型定義のようなものです。

Discover

インデックスパターンに対してGUIを用いて検索を行います。

ネストしたJSONも扱えます。

DQL(Dashboards Query Language) というダッシュボード用のクエリ言語で絞り込むこともできます。

Visualization

OpenSearchのデータを各種グラフで可視化します。

Query Workbench

OpenSearchのデータをSQLで検索できる機能です。

検索結果は以下のように表示されます

ネストしたJSONも確認できます

Dev Tools

OpenSearchのAPIを実行できるコンソールです。

APIリファレンスを見ながら色々実験したい時に便利です。

以上です。

コメントする