Elasticsearch 5.0の便利機能紹介?

Posted by johtani on Thursday, December 1, 2016

目次

Elastic stack Advent Calendar 1日目の記事になります。

Elasticsearch 5.0が10月末にリリースされました。 リリースのブログでいくつか紹介されているのですが、そこでは紹介されていない機能について2、3紹介しようと思います。

その前に、5.0、あれ?その前は2.xじゃなかったっけ??と困惑されている方もいるかと思うので、簡単に5となった経緯の紹介をしようかと。

バージョン番号

なぜ2から5に飛んだのかという話ですが、このスライドがその紹介になっています。

https://speakerdeck.com/johtani/elastic-stack-5-dot-0-alpha1-alpha5?slide=5

Elastic{ON} 2016のキーノートでも紹介がありましたが、KibanaやLogstashとElasticsearchを組み合わせて使うときにバージョンのミスマッチで動かないというユーザの声が上がっていました。 2.xのリリースから、同じ日にKibana、Logstash、Beatsもリリースするようになったのですが、 やはり、バージョン番号が異なるため、ミスマッチで動かないというユーザが時々いました。

Elastic Stackという名称にもなったため、バージョン番号をそろえようという事になり、 Elasticsearch、Kibana、Logstash、Beats全てが5.0.0としてリリースされ、 今後は同じバージョン番号になります。

ちなみに、「5」になった理由はKibanaのメジャーバージョンが「4」だったためです。

さて、では、いくつか機能の紹介を。

Reindex from remote cluster

Reindexが2.3から導入されました。データの再登録ができるようになり、マッピングの変更や Shardの数の変更などが柔軟に行えるようになりました。 便利でしたが、あくまでも同一のクラスタでデータを登録し直す形でした。

5.0からはこの機能に加えて、異なるクラスタからデータを取得してReindexを行うことができるようになりました。 こんな形になります。

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://otherhost:9200",
      "username": "user",
      "password": "pass"
    },
    "index": "source",
    "query": {
      "match": {
        "test": "data"
      }
    }
  },
  "dest": {
    "index": "dest"
  }
}

usernamepasswordはリモートのクラスタに認証の気候が存在する場合に利用できるオプションです。 また、ReindexのAPIはクエリを使用して、必要なデータだけを取得することが可能です。 この機能により、1.xや2.xのクラスタからデータを移行することが可能になります。

Custom analyzer test using Analyze API

もう一つ、ちょっとだけ便利な機能を紹介します。 独自にAnalyzerを定義(TokenizerとToken Filterなどを個別に設定)して、その挙動を確認するとき、2.xまでは、インデックスを作成してそのインデックスに対して_analyze APIを呼び出す必要がありました。

5.xからは_analyze APIの読み出しのパラメータで指定できるようになりました。 こんな感じです。ここでは、lowercaseフィルタのあとに、{...}stopフィルタを パラメータの中で、指定しています。

curl -XGET 'localhost:9200/_analyze' -d '
{
  "tokenizer" : "whitespace",
  "filter" : ["lowercase", {"type": "stop", "stopwords": ["a", "is", "this"]}],
  "text" : "this is a test"
}'

ちょっとだけですが、Analyzerなどを試すのが楽になるのではないでしょうか?

ということで、以上が1日目の記事でした。 Logstashなど、他の5.0.0に関する記事もAdvent Calendarに空きがあるようなので、個別にかこうかなと思います。お楽しみに!


comments powered by Disqus

See Also by Hugo


Related by prelims-cli