@johtaniの日記 2nd

@johtani ‘s blog 2nd edition

Elasticsearch 5.0の便利機能紹介?

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を行うことができるようになりました。 こんな形になります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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フィルタを パラメータの中で、指定しています。

1
2
3
4
5
6
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に空きがあるようなので、個別にかこうかなと思います。お楽しみに!

よく物が壊れる年

なんか、今年はよく物が壊れる、厄年だからかなぁ?

ということで、記念に何が壊れたかをブログに残しておこうかと。

  1. 腕時計(壊れてないかな)
    • 電波腕時計を使ってたんだけど、電池がへたってたのでオーバーホールしてもらった。
  2. Moto 360(壊れたというか。。。)
    • 何度かバージョンアップしてるんだけど、数ヶ月前から、ちょっと触っただけで電源が落ちる現象が。ファームウェアのせいかAndroid Wearのバージョンアップのせいかわからないけど。。。挙げ句の果てに、電源を入れるために充電器にセットしないといけないと言う酷い仕様。。。
  3. 自転車前輪
    • 自転車で車道を横切る側溝の蓋の間に前輪がはまってすっ転んでしまい、タイヤのスポークがちょっと曲がってしまう
  4. ジーンズその1
    • 自転車で転んだ時に、膝とかこすって破れる
  5. ジーンズその2
    • 福岡出張中に雨で滑って派手に転んで、膝に大きな穴が。。。
  6. リュック
    • 怪しいとは思ってたんだけど。。。 ということで、リュックを新調しつつ修理に出してるところ。
  7. Xperia Z3
    • 先週金曜日にカメラのレンズが結露してるなぁと思ったら、電源が入らなくなった。補償サービスに入ってたんで、新しいZ3を次の日に送付してもらい復旧。いろいろなアプリがログインしないといけないのでかなり大変だった。。。

まだ、半年残ってるので他にも壊れるのかなぁ。。。 お祓いしてもらったので、何もなければいいんだけど。

ということで、なんとなく欲しいものリストを貼っておきますね。

第14回Elasticsearch勉強会を開催しました。 #elasticsearchjp

あけましておめでとうございます、johtaniです。

第14回Elasticsearch勉強会を開催しました。 スタッフの皆さん、スピーカーの皆さん、会場提供していただいたリクルートテクノロジーズさん、ありがとうございました! 今年もよろしくお願いします!参加していただき盛り上げていただいた参加者の皆さんもありがとうございました。

Timelionの紹介 - Elasticsearch Advent Calendar 2015 1日目

こんにちは、@johtaniです。

早いもので、師走です。今年もあと少しとなりました(今月が一番忙しかったりしますが。。。)。 ということで、Advent Calendarの季節が始まりました。

この記事はElasticsearch Advent Calendar 2015の1日目のエントリです。

今日は、最近公開されたTimelionの紹介をしたいと思います。