Elasticsearch 6 を使ったデータ検証 その1(Dockerでコンテナの作成と確認)

Elasticsearch 6を利用して検索の検証を何回かで行ってみます。

Elasticsearh はElastic社によりメンテナンスされている構造型、非構造型など様々なデータの検索を行うことができるソフトウェアですが、同様の機能を持つプロダクトのsolrと比べて2014年の前半からGoogleトレンドでも逆転し、現在では4倍近くの差が出ています。

2015年の1月にAWSでAmazon Elasticsearch Serviceが開始されたのも大きでしょう。
https://aws.amazon.com/jp/blogs/aws/new-amazon-elasticsearch-service/

 

Elasticseach ですが現在ではバージョン6.3が最新のものとなっております。

バージョンの推移は以下となります。

バージョン情報 GA(一般提供開始日)
0.4 2010/2/8
1.0.x 2014/2/12
2.0.x 2015/10/28
2.1.x 2015/11/24
2.2.x 2016/2/2
2.3.x 2016/3/30
2.4.x 2016/8/28
5.0.x 2016/10/26
5.4.x 2017/5/4
5.5.x 2017/7/6
5.6.x 2017/9/11
6.0.x 2017/11/14
6.1.x 2017/12/12
6.2.x 2018/2/6
6.3.x 2018/6/13

 

2.4系から5.0系に一気に進んだのはKibana、Logsash、Beatsなどの周辺ソフトウェアとのバージョンを合わせるためとなっております。

Elasticsearch のメンテナンスポリシーでは、最新2世代のメジャーバージョンに対してのみメンテナスが行われ、現在では6.3.xと5.6.xにリリースが維持されています。

次の7.0.0がGAになるタイミングで5.6.xのメンテナンスが終了になります。

また、 Elasticsearch のインデックスが利用できるのは一つ先のメジャーリリースのみとなります。

現在の6系では2系のインデックスは動作しません。
2系のインデックスの移行は5系のみで動作します。

もし2系のインデックスを6系で利用する場合は、一旦5系に上げてから6系にアップグレードする必要があります。

また、6系になった際に大きく機能が変更していますので、それまで Elasticsearch を利用していた場合は利用に注意が必要です。

★ Elasticsearch 6 を利用する前に把握しておいた方がよさそうなこと
https://dev.classmethod.jp/server-side/elasticsearch/elasticsearch-6-breaking-changes/

非常にアップデートが早いソフトウェアですので利用に際してはが必要です。

 

Elasticsearch を Docker で利用してみる

利用としてはローカルの検証環境でのテストが便利です。

Dockerhubの公式サイトではバージョンが5までのものが置いておあります。
https://hub.docker.com/_/elasticsearch/

ただ、最新のものはDockerhubの公式サイトにもありますように、6系以降の最新版は以下の Elastic社から取得できます。
https://www.docker.elastic.co/

それでは、検証するためのDockerfileの設定をしてみます。

 

今回、検証では日本語の判定を行いたいと思います。

その際に文章の中で適切な語句を取り出す必要があるため形態素解析などの技術を使い単語分別をする必要になります。

日本語を扱うためのプラグインでは「Kuromoji」と「ICU(International Components for Unicode)」が公式ドキュメントにも記載されています。

以下のサイトがこちらについて非常によくまとまっています。

★ Elasticsearch を日本語で使う設定のまとめ
https://qiita.com/shin_hayata/items/41c07923dbf58f13eec4

 

以下のコマンドで起動を行えます。

 

さて、別ターミナルで情報の取得を行います。

 

バージョン情報などが無事確認できました。

 

念のためkuromojiのプラグインが入っているのも確認してみます。

 

次回以降に動作の確認などを行っていきます。

 

★関連記事

Elasticsearch 6 を使ったデータ検証 その2(マッピングの登録をしてみる)

Elasticsearch 6 を使ったデータ検証 その3(bulkでデータを投入してみる)

Elasticsearch 6 を使ったデータ検証 その4(チュートリアル記事とデータの検索での比較)

Elasticsearch 6 を使ったデータ検証 その5(クエリでの検索)

Elasticsearch 6 を使ったデータ検証 その6(Aggregationを使った分類・集計)

Elasticsearch 6 を使ったデータ検証 その7(Analyzerについて)