Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic{ON} 2017 2日目 |Luceneの新機能の紹介! #elasticon

Elastic{ON}2017 レポートのまとめはこちら!!

こんにちは!@です。
Elastic{ON}2日目が終わりました!

2日目はMachine Learningなど注目のセッションが多かったです。
そして、私はPythonistaのBoFに行ってきました。その感想はこちらです。

Elastic{ON} 2017 2日目| BoF: Pythonista Unite!に挑戦しました - Taste of Tech Topics


今日は「Get the Lay of the Lucene Land」を紹介します。
他にも面白いセッションがたくさんありました!
機械学習を主に業務として担当しているので、もちろんこれらも非常に面白かったです。
こちらは、弊社の他の参加者が紹介する予定です!お待ち下さい。

  1. Get the Lay of the Lucene Land
  2. BoF: Pythonistas, Unite!
  3. Machine Learning in the Elastic Stack
  4. The Engine for Key Security Platforms at Barclays
  5. Machine Learning and Statistical Methods for Time Series Analysis

Get the Lay of the Lucene Land

Luceneの今と今後の話がありました。
LuceneはElasticsearchのバックエンドに使われている検索エンジンです。
Elasticsearchだけではなく、Solrにも使われています。

普段、Elasticsearchを触っていますが、検索のバックエンドまで意識していなかったです。
そのため、Elasticsearchのバックエンドで動いているLuceneがどんな機能・特徴を
持っているのか、非常に楽しみなセッションでした。

f:id:acro-engineer:20170309050444j:plain:w500

概要

最初にLuceneの近況を紹介です。Lucene 4からLucene7までの機能一覧です。

f:id:acro-engineer:20170309052655j:plain:w500

現状リリースされているのは、Lucene 6です。
このセッションの話はLucene 7までにどのような機能が追加されるかの説明です。

新機能紹介

Queryの改善

まずは、Better query parsingにより検索の改善が行われます。

f:id:acro-engineer:20170309050710j:plain:w500

また、Range FieldsもBKD Treeを使って改善するようです。
BKD Treeは検索でよく使われる構造で検索の速度を向上させます。

f:id:acro-engineer:20170309050555j:plain:w500

この2つは明日のセッション(Elasticsearch Search Improvements)で話される予定です。

この後、index Sorting、Sparce Docやその他実装予定の機能の話がありました。

Index Sorting

最初にIndex Sortingの設定の話です。
doc valueをランダムな順序とするか、また、DESC(降順)に並び替えることにより
どれだけ性能が異なるのか紹介がありました。

ランダムな順序よりも、Indexをする時間は増加しました。
しかし、その他Top10取得の計算などの速度は向上しています。

また、検索面の性能も向上していると説明がありました。
これらをどう組み合わせて検索するかが、システムの検索性能向上の鍵になりそうです。

f:id:acro-engineer:20170309051955j:plain:w500

Sparse Doc

話を聞いていて個人的にSparse doc value fieldsは面白かったです。
Sparse Doc保存方法を変更するとディスク消費量が改善されるが、
ソートの時間がかかってしまうとのことです。

f:id:acro-engineer:20170309052252j:plain:w500

その他、Luceneに追加される機能たち

また、Queryをクエリをどのような順番でどう実行するかを構築するQuery Planningや
そのQuery PlanningのBenchmarkなどの検証を行っていました。

そしてLuceneには今後、これらの機能も追加される予定です。

f:id:acro-engineer:20170309051457j:plain:w500

最後に

明日は最終日です。この2日間だけでも多くの新しい情報を得ることができました。
最終日もがんばってきます!!

Elastic{ON}2017 レポートのまとめはこちら!!

Acroquest Technologyでは、キャリア採用を行っています。

  • ビッグデータHadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
  • マイクロサービスDevOpsなどの技術を使ったり、データ分析機械学習などのスキルを活かしたい。
  • 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

Elasticsearchを仕事で使いこみたいデータ分析エンジニア募集中! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com