OpenSearch®の紹介

<font color="Grey">*[Introduction to OpenSearch®](https://aiven.io/blog/introduction-to-opensearch)の翻訳です。*</font>

2022年1月27日

# オープンサーチ入門

OpenSearchはコミュニティ主導の真のオープンソース検索・分析スイートです。その機能の概要については、こちらをお読みください。

昨年9月、私たちはAiven for [OpenSearch](https://aiven.io/opensearch)を紹介しました。この記事では、OpenSearchのコンポーネントのハイレベルな概要と、このオープンソースの検索・分析エンジンにふさわしいユースケースを紹介します。さっそく飛び込んでみましょう！


## OpenSearch とは？


一言で言えば、OpenSearch は Elasticsearch に代わるオープンソースです。検索エンジンデーモン、OpenSearch、NoSQLデータベース、可視化インターフェースを含む検索・分析スイートです。[Apache Lucene](https://lucene.apache.org/)ベースの分散型全文検索エンジンを提供し、RESTful APIインターフェースとJSONドキュメントをサポートしています。


OpenSearchのコンポーネントとコンセプトをもう少し詳しく見てみよう。


### クラスターとノード


OpenSearch は **分散型** 検索・分析エンジンです。つまり、高度にスケーラブルなクラスタとやり取りすることになります。各クラスタは、データを保存し、検索要求を処理する 1 つ以上のノードで構成されます。


前述の通り、クラスタはスケーラブルです。ラップトップのような単一ノードのクラスタでも、複数のパワフルなマシンでも実行できる。クラスタが大きくなれば、それらのマシンに責任を分担させることができる。また、異なるタイプのタスクに異なるサーバーを合わせることもできる。高速なディスクを持つマシンはデータのインデックス作成と検索を担当し、ディスクは小さいがCPUが高いサーバはクラスタの状態管理を担当するといった具合だ。


もっと詳しく知りたい方は、Open Searchプロジェクトサイトの[Cluster formation](https://opensearch.org/docs/latest/opensearch/cluster/)の記事をご覧ください。


### インデックス


リレーショナル・データベースのデータベースやテーブルのように、OpenSearch はインデックスを使ってデータを整理します。データは各インデックスをプライマリシャードにマッピングすることでクラスタ内に分散され、プライマリシャードは1つ以上のレプリカシャードにコピーされます。これにより、ハードウェアの障害からデータを保護し、読み込みリクエストのための追加容量を提供します。


[Aiven Developer Portalのインデックス記事](https://developer.aiven.io/docs/products/opensearch/concepts/indices.html)では、インデックスとシャードのトピックについて詳しく説明しています。


### REST API


OpenSearch は通信に REST API を利用しています。HTTPS リクエストを送信するには、任意のプログラミング言語または [cURL](https://curl.haxx.se/) のようなクライアントを使用できます。


以下は、[OpenSearch プロジェクトの公式サイト](https://opensearch.org/docs/latest/opensearch/index/) から引用した、HTTPS リクエストを送信して OpenSearch インデックスに JSON ドキュメントを追加する例です。



```
 `PUT https://<host>:<port>/<index-name>/<document-id>/_doc/<document-id
 {
 "title"：「風立ちぬ
 "release_date"："2013-07-20"
 クリップボードにコピー
```

ドキュメントの検索を実行する



```
 `GET https://<host>:<port>/<index-name>/_search?q=wind`Copy to clipboard
```

ドキュメントを削除する：



```
 `DELETE https://<host>:<port>/<index-name>/<document-id>`Copy to clipboard
```

### 集約


OpenSearchの素晴らしい点の一つは、その強力な分析エンジンです。このエンジンは、計算を実行し、データを分析し、そこから統計を抽出することができます。これは、リアルタイムでデータを分析し、OpenSearch ダッシュボードで可視化しようとするときに便利です。


OpenSearchのアグリゲーションについてもっと知りたければ、[デベロッパーポータルのアグリゲーションについての記事](https://developer.aiven.io/docs/products/opensearch/concepts/aggregations)か、[OpenSearchプロジェクトサイト](https://opensearch.org/docs/latest/opensearch/aggregations/)のさらに詳しい記事をチェックしてください。


## OpenSearch の主なユースケースは何ですか？


OpenSearchを使えば、データの取り込み、検索、集約、表示、分析が簡単にできます。これらの機能は、ログ分析、リアルタイム・アプリケーション・モニタリング、クリックストリーム分析、検索バックエンドなどのユースケースで人気があります。


## OpenSearch を始めるには？


素晴らしいニュースです！[Aivenコンソール](https://console.aiven.io/login)でOpenSearchを始めることができます：


1.1.OpenSearchのバージョン、クラウドプロバイダー、デプロイ先を選択し、使用するプランを選択します。
2.サービス名をつける
3.Create Service "をクリックすると、OpenSearchデータベースが構築されます。
4.その間に、サービスの概要ページにアクセスして、サービスの詳細を見ることができます。


サービスをテストし、自分のデータで遊んでみるには、[cURL](https://developer.aiven.io/docs/products/opensearch/howto/opensearch-with-curl.html) で接続することから始めましょう。テストデータに飢えているのであれば、[サンプルレシピデータセット](https://developer.aiven.io/docs/products/opensearch/howto/sample-dataset) を選んでみましたので、OpenSearch を試してみてください。


## まとめ


もしあなたがパワフルなオープンソースの検索・分析エンジンを探しているなら、OpenSearchはあなたのデータを検索・管理するのに必要なものをほとんど全て備えている。


* [Python](https://aiven.io/blog/opensearch-dinner-party)と[NodeJS](https://aiven.io/blog/start-using-opensearch-with-nodejs)を使ってOpenSearchを始める方法をAivenブログでご覧ください。
* 開発者ポータルの[Aiven for OpenSearch](https://developer.aiven.io/docs/products/opensearch/index)のドキュメントをご覧ください。


Aiven for Elasticsearchをご利用の方で、OpenSearchへの移行にご興味のある方は、ドキュメントの[Migrate Elasticsearch data to Aiven for OpenSearch](https://developer.aiven.io/docs/products/opensearch/howto/migrating_elasticsearch_data_to_aiven)をご参照ください。また、[Aiven for OpenSearch](https://aiven.io/opensearch)の無料トライアルにご登録いただき、[Twitterでフォロー](https://twitter.com/aiven_io)していただくと、製品や機能関連の最新ニュースをご覧いただけます。