Elasticsearch(エラスティックサーチ)。Elastic社が提供する「Lucene」ベースのオープンソース全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

オープンソースの検索エンジン/Elasticsearchとは

Elasticsearch(エラスティックサーチ)。Elastic社が提供する「Lucene」ベースのオープンソース全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

Elasticsearch(エラスティックサーチ)とは、Elastic社が提供する「Lucene」ベースのオープンソース全文検索エンジンです。マルチテナント、スキーマレスでクラウドに最適化されています。

目次

「Elasticsearch」基本情報
  ・概要
  ・ポイント
  ・主な特徴
  ・同様製品(概要情報)
  ・導入事例
  ・ライセンス情報
  ・ダウンロード

ざっくりわかる「Elasticsearch」
第1回 Elasticsearchとは(入門編)
  ・「Elasticsearch」オフィシャルサイト
  ・知識ゼロからElasticsearchを実践で使えるようになろう!
  ・Elasticsearch入門解説シリーズ
  ・「Elasticsearchと対話Botによる対話型の検索システム」連載
第2回 Elasticsearchの環境別インストール
  ・Linux(Ubuntu)編
  ・Windows編
  ・Mac編
  ・Docker編
第3回 Elasticsearchのマッピング
  ・Elasticsearchのマッピング
  ・参考サイト
第4回 Elasticsearchの使えるプラグイン
  ・プラグイン概要
  ・参考サイト
第5回 ElasticsearchのAPI入門
  ・ElasticsearchのAPI
  ・参考サイト

TOPに戻る

「Elasticsearch」基本情報

概要

全文検索エンジンとは

全文検索エンジンとは、大量にあるドキュメントデータの中から、目的のワードを含むドキュメントデータを検索するための仕組みです。

「RDBMS」と「全文検索エンジン」の違い

「RDBMS」は、検索条件にマッチするデータを正確に返します。

一方、Elasticsearchのような「全文検索エンジン」は、「検索条件との関係性/関連性が高いデータを抽出して返す」という特徴があります。

基本説明

Elasticsearchは、「ユーザが、もっと簡単に、本当に欲しいものを検索できるように」というコンセプトで開発されました。

Elasticsearchの優れているポイントは、分析の柔軟性や速度です。簡単に強力な検索機能を利用することが可能で、さらに高度な使い方も可能です。分析/蓄積/可視化環境を容易に構築できます。

データ可視化ソフトウェア「Kibana」とセットで使われることが多く、サーバアクセスログ可視化、SNSデータ可視化などを実現できます。

経緯

世界的有名企業(Facebook、GitHubなど)が導入し、7000万ドルもの資金調達をしたことでも注目を集めました。

ポイント

・高度なリアルタイム分析
・大規模分散
・高可用性
・マルチテナンシー
・全文検索
・ドキュメント指向
・スキーマフリー
・RESTfulAPI
・データ保護機能

主な特徴

スケーラブル

Elasticsearchは、クラスタ構成が前提となっており、マシン1台の場合でも、1台構成のクラスタとして起動します。Elasticsearchマシンを追加すれば、既存データの分散/レプリカなどが自動で実行されます。

何百台のクラスタ構成や、ペタバイト級データにも対応できます。

スキーマレス

スキーマ(データマッピング)定義なしで、データ投入を開始できます。フィードしたフィールドの値で、自動的に型などが判別されます。明示的に定義を行うことも可能です。

マルチテナント

インデックスを複数持つことができます。さらに、インデックス配下に、ドキュメントグループ(Type)を複数定義できる構造になっています。さまざまな種類のドキュメントデータに柔軟に対応できます。

REST+JSON

すべての入出力は、RESTインタフェース(JSON形式)で行われます。JSONライブラリがあれば、開発言語に関わらずデータの入出力が可能です。

可視化が容易

Elastic社の可視化ソフトウェア「Kibana」との連携が優れており、簡単に視覚化できます。

Hadoop対応

Elasticsearchは、ビッグデータ処理基盤「Hadoop」に対応しています。連携させれば、テキストデータのエンリッチメント/データ整形処理などが容易に行えます。

スコア(関連度)

Elasticsearchの関連度にはスコアというものが設定されています。関連度は、ドキュメント内での対象ワードの出現頻度で決定されます。

また、関連度合いの重み付けとして「ワードの短さ」も重要視されます。短いタイトル上に表記されたワードは、関連性が高いと判断されます。

柔軟にカスタマイズできる

細かいチューニングを行えるため、目的の結果を得やすくなります。

プラグイン

Elastic社が提供するさまざまなプラグインが用意されています。より柔軟な全文検索、文書分析改善などが可能になります。コミュニティによる「日本語形態素解析」プラグインもあり、また自分で作成することもできます。

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Apache Solr」「Lucene」「Fess」「groonga」「Hyper Estraier」など。

導入事例

FacebookやGitHubなどで利用されているなど、数多くの大規模サービスで採用されています。

ライセンス情報

Elasticsearchのライセンスは、「Apache 2 license」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

TOPに戻る

ざっくりわかる「Elasticsearch」

全文検索エンジン「Elasticsearch」について、さまざまな角度から紹介します。

第1回 Elasticsearchとは(入門編)

「Elasticsearch」の概要について解説しているサイトを紹介します。

「Elasticsearch」オフィシャルサイト

[ポイント]

オフィシャルサイト(日本語)では、Elasticsearchの概略について、分かりやすく説明されています。

[テーマ]

・Elastic Stackのハート
・クエリ 好奇心を忘れない。あらゆるデータを検索。
・分析 一歩下がって全体像を見る。
・スピード Elasticsearchは速い。とにかく速い。
・スケーラビリティ ノートPCから、ペタバイト単位のデータを処理する何百台ものサーバーまで。
・操作の楽しみ シンプルでバンザイ
・クライアントライブラリ 好きなプログラミング言語でアクセスできます
・エンタープライズ対応 セキュリティと監視。
・HADOOPとSPARK ElasticsearchとHadoopを組み合わせる
・インストールしてすぐに使えます

[ページリンク]

→elastic →Elasticsearch

知識ゼロからElasticsearchを実践で使えるようになろう!

[ポイント]

「Elasticsearchの概念」「全文検索技術の基本」など、全文検索に関する知識がゼロからでも分かるように解説されています。

[テーマ]

・Elasticsearchの概念を学ぶ
・全文検索技術の基本を知る
・実践の知識を学ぶ
  ・インデックス定義の設計を学ぶ
  ・ドキュメントの作成・更新・削除処理
  ・Search APIやQuery DSLを学ぶ
・Elasticsearchの公式ドキュメントの引き方を学ぶ
・まとめ

[ページリンク]

→HatenaBlog →$shibayu36 blog →知識ゼロからElasticsearchを実践で使えるようになろう!

Elasticsearch入門解説シリーズ

[ポイント]

Elasticsearchの仕組みや使い方などについて解説されているシリーズです。

テーマごとに、入門用として分かりやすく説明されています。

[テーマ]

第1回 Elasticsearch入門 インデックスを設計する際に知っておくべき事
第2回 Elasticsearch入門 データスキーマ設計のいろは
第3回 Elasticsearch入門 ドキュメント管理は意外と高度なことができる
第4回 Elasticsearch入門 検索の基本中の基本
第5回 Elasticsearch入門 Elasticsearch の使いどころ
第6回 Elasticsearch入門 基本コンセプトを理解する
第7回 Elasticsearch入門 APIの使い方をハンズオンで理解する〜前編〜
第8回 Elasticsearch入門 APIの使い方をハンズオンで理解する〜後編〜

[ページリンク]

→Developers.IO →Elasticsearch入門 – シリーズ –

「Elasticsearchと対話Botによる対話型の検索システム」連載

[ポイント]

「対話インターフェースを利用した検索システムの体験」を目的とした連載です。

Elasticsearchのことを学びつつ、実際に実装しながら「新しいタイプの検索システム」を構築していく内容になっています。

[テーマ]

・Elasticsearchを用いた日本語検索システムの理論と設定
・Elasticsearchを用いた日本語検索システムの実装
・Elasticsearchへの大量データ登録の効率化
・使いたくなる検索システムのUIをSlackBotで実現する
・SlackとElasticsearchを連携し、使いやすい検索システムを作成する

[ページリンク]

→CodeZine →「Elasticsearchと対話Botによる対話型の検索システム」連載一覧

TOPに戻る

第2回 Elasticsearchの環境別インストール

Elasticsearchのインストール方法について、環境別に紹介します。

Linux(Ubuntu)編

[ポイント]

「Ubuntu 15.10」に「Elasticsearch 2.2.0」をインストールする方法について紹介されています。

[テーマ]

・install(Java+Elasticsearch)
・起動
・pluginのインストール
・とりあえず今の状態を確認する
  ・elasticsearchの状態を確認
  ・indexの確認
  ・nodeの状況を確認
  ・クラスタの状態を確認(_cat apiというapi)
  ・ブラウザで状態の確認をする
・設定を行う
  ・設定ファイルで設定する。
  ・mapping
・indexでデータを格納する
・query

[ページリンク]

→Qiita →Elasticsearch触ってみた。

Windows編

[ポイント]

Windowsに「Elasticsearch」+「Kibana」をインストールする方法について紹介されています。

Elasticsearchプラグインの紹介とインストール方法も記載されています。

[テーマ]

・ElasticsearchとKibanaの概要
  ・Elasticsearch
  ・Kibana
  ・どのぐらい早いの?
・環境セットアップ
  ・インストール手順概要
  ・Elasticsearch
  ・Kibana
・Elasticsearchプラグインの紹介とインストール手順
  ・Marvel
  ・Sense
  ・Kuromoji
・補足:アプリケーション起動・停止コマンド
  ・Elasticsearch
  ・Kibana

[ページリンク]

→Qiita →Elasticsearch+Kibanaでデータ解析(①環境セットアップ編)

Mac編

[ポイント]

Mac「OS X 10.10.5」に、ELK(「Elasticsearch 2.3.2」「Logstash 2.3.2」「kibana 4.5」)をインストールする方法について紹介されています。

[テーマ]

・Elasticsearch
  ・java(JDK)のダウンロードとインストール
  ・インストール
  ・pluginのためにパス通す
  ・プラグインいれる
  ・起動
・Logstash
・Kibana

[ページリンク]

→Qiita →MacにELK(Elasticsearch, Logstash, Kibana)インストールしてみた

Docker編

[ポイント]

ElasticsearchのオフィシャルDockerコンテナを利用して、Elasticsearch+Kibana環境構築を行なう方法について紹介されています。

[テーマ]

・環境
  ・バージョン
  ・プラグイン(X-Pack、kuromoji)
・Docker のファイルを準備
  ・docker-compose.yml
  ・es/Dockerfile
  ・es/config/elasticsearch.yml
  ・es/config/log4j2.properties
  ・kibana/Dockerfile
・ビルドと実行
  ・kibana の画面にアクセス

[ページリンク]

→Qiita →Dockerを利用して Elasticsearch + Kibana の環境を作る

TOPに戻る

第3回 Elasticsearchのマッピング

Elasticsearchのマッピング

[概要]

Elasticsearchにおける「マッピング」とは、リレーショナルDBでの「テーブル定義」に相当します。

「フィールド名」+「フィールド型」の定義に加えて、ドキュメントを効率よく検索するために必要となる「型情報」が必要となります。

検索精度を最適化するために、アプリケーション仕様に適合するマッピングが必要です。

[「フィールド型」と「型情報」]

基本的な「フィールド型」
・String : 文字列
・Number : 数値
・Date : 日付
など

代表的な「型情報」
・index
  analyzed:検索可能フィールド
  no:検索不可フィールド
  not_analized:完全一致での検索は可能
・null_value
  値がない場合に、デフォルトで登録される値
など

[自動マッピング]

対象データを取り込む場合、基本的なルールにより、基本的な型に自動マッピングされます。

[手動マッピング]

自動マッピングでは、十分な検索精度が得られない場合は、手動でマッピングを行います。
各フィールドに対して「型情報」を設定します。
・検索可能/不可 設定
・日本語解析用analyzer設定 など

参考サイト

[Hello! Elasticsearch.]

ポイント
Elasticsearchにおけるマッピングの基本について、分かりやすく解説されています。

テーマ
・自動マッピング
・手動マッピング定義が必要なケース
・手動マッピング
・マッピングのテスト

ページリンク
→Hello! Elasticsearch. →Elasticsearch マッピング Elasticsearch Mapping — ドキュメントスキーマと検索精度を最適化するためのマッピング定義

[Elasticsearchのインデックス定義設計手順]

ポイント
インデックス(マッピング)定義設計について、「まずやりたいことを確定して、その後、どのような手順で進めていけばよいのか」について解説されています。

テーマ
・今回サンプルとする例
・インデックスやマッピングを設計する手順
・Elasticsearchでやりたいことを決める
・フィールドとその型を決める
・全文検索のためにどのようにアナライズするか考える
  ・カテゴリ名の完全一致で検索するために
・その他細かい検討を行う
  ・Dynamic Mappingの無効化
  ・_sourceフィールドの無効化
  ・インデックスにalias名を付けるか
・最終的なインデックス定義のJSONを作る
・まとめ

ページリンク
→Hatena Blog →$shibayu36 blog →Elasticsearchのインデックス定義を設計する手順

[マッピングの変更に関する問題点と解決法]

ポイント
elasticサイトのエンジニアブログ「The Great Mapping Refactoring」が日本語訳されています。
「マッピングの変更に関する問題点と解決法」について解説されています。

テーマ
・フィールドマッピングのコンフリクト
  ・解決方法
  ・タイプの代わりにインデックスを別々に
  ・コンフリクトしたフィールドの名前の変更
  ・copy_toもしくはmulti-fieldsを利用
  ・各データタイプに対してネストしたフィールドに
・あいまいなフィールドのルックアップ
・タイプのメタフィールド
・アナライザ設定
・index_nameとpath
・同期的なマッピングの更新
  ・クラスタ状態の差分
  ・シャードへのリクエストの非同期化
・マッピングの削除
・2.0のための準備

ページリンク
→@johtaniの日記 2nd →Mappingのすばらしいリファクタリング(日本語訳)

TOPに戻る

第4回 Elasticsearchの使えるプラグイン

プラグイン概要

Elasticsearchは、各種プラグインを導入することによって、さまざまな機能強化を行えます。

多くの種類が用意されています。
・カスタムマッピングタイプ
・カスタムアナライザ
・ネイティブスクリプト
・カスタムディスカバリ など

→elastic →Docs →Elasticsearch Plugins and Integrations

参考サイト

便利なプラグインを解説しているサイトを紹介します。

[プラグインの管理方法と主なプラグイン]

ポイント
「プラグインのインストール/確認/削除方法」と「おすすめプラグイン」について紹介されています。

テーマ
・Installing Plugins.
・Installed Plugins.
・Removing Plugins.
・Plugins.
  ・Analysis Plugins.
  ・Discovery Plugins.
  ・River Plugins.
  ・Scripting Plugins.
  ・Site Plugins.
  ・Snapshot/Restore Repository Plugins.
  ・Misc Plugins.

ページリンク
→Hello! Elasticsearch. →Elasticsearch プラグイン Elasticsearch Plugins — 機能を拡張するプラグインの管理方法と主なプラグイン

[いつも入れているElasticsearchプラグイン]

ポイント
便利なプラグインについて紹介されています。

テーマ
・elasticsearch-analysis-kuromoji
・elasticsearch-extended-analyze
・polyfractal/elasticsearch-inquisitor
・mobz/elasticsearch-head
・royrusso/elasticsearch-HQ
・polyfractal/elasticsearch-segmentspy
・elasticsearch/marvel

ページリンク
→@johtaniの日記 2nd →いつも入れているElasticsearchのプラグイン

[ブラウザで操作/閲覧できるプラグイン「ElasticSearch Head」]

ポイント
Elasticsearchをブラウザで操作/閲覧できるプラグイン「ElasticSearch Head」のインストール方法と概要について紹介されています。

テーマ
・ElasticSearch Head
  ・インストール
  ・外部からアクセスできるようにする
  ・Browser
  ・Structured Query
  ・Any Query
・軽く使ってみて

ページリンク
→気まぐれDeveloperブログ →Elasticsearchを学ぶ 2 - Plugin ElasticSearch Head -

[「Shield」での監査証跡出力 + 「Watcher」での不正アクセス検知]

ポイント
Elasticsearchの有償プラグイン「Shield」で監査証跡を出力し、「Watcher」を利用して監査証跡から不正アクセスを検知してメールアラートを送信する方法について解説されています。

テーマ
・概要
・はじめに
  ・Shieldとは
  ・Watcherとは
  ・本記事を読む前に
・環境情報
・監査証跡出力
  ・Shieldインストール
  ・出力要否設定
  ・出力先設定
  ・出力確認
  ・ログのエントリ種別
  ・ログのフォーマットについて
・不正アクセス検知・アラート
  ・Watcherインストール
  ・Watch定義
  ・確認
・不正アクセス
  ・メール通知
  ・Watch定義削除
・まとめ

ページリンク
→Qiita →Elasticsearchのプラグイン「Shield」「Watcher」による不正アクセス監査

TOPに戻る

第5回 ElasticsearchのAPI入門

ElasticsearchのAPI

Elasticsearchには豊富なAPIが用意されており、さまざまな処理を行えます。

オフィシャルサイトでの解説を参照できます。

→Elasticsearch →Docs →API Documentation

→elastics →Elasticsearch Reference [5.3] →Document APIs

参考サイト

[初心者のためのRest APIから覚えるElasticsearch]

ポイント
APIを使用してElasticsearchの各機能を使用する方法について、解説されています。
「Elasticsearch起動」「ドキュメント操作」「検索」などをAPIで操作します。

テーマ
・はじめに
・1. Elasticserchのヘルスチェック
・2.マッピング
・3.ドキュメントを操作する
・4.検索
・5.更に検索する
・RestAPIの共通オプション
・終わりに

ページリンク
→Qiita →Elasticsearch Advent Calendar 2015 5日目 →初心者のためのRest APIから覚えるElasticsearch

[Elasticsearch公式ドキュメントベースのハンズオン(前編)]

ポイント
Elasticsearch公式ドキュメントを参考にしたハンズオン(前編)です。
「Elasticsearchの起動/停止」「ドキュメント管理(追加/登録/削除)」を中心に説明されています。
Getting Started - Elasticsearch - The Definitive Guide
Getting Started - Elasticsearch Reference

テーマ
・ハンズオンの内容
・事前準備
  ・Elasticsearch のインストール
・基本コンセプト
・ハンズオン
  ・練習1. 起動・停止とステータス確認
  ・練習2. Cluster や Node 、Index の状態を確認する
  ・練習3. ドキュメントの操作
  ・練習4. バッチプロセッシング
・さいごに

ページリンク
→Developers.IO →第7回 Elasticsearch 入門 API の使い方をハンズオンで理解する 〜前編〜

[Elasticsearch公式ドキュメントベースのハンズオン(後編)]

ポイント
Elasticsearch公式ドキュメントを参考にしたハンズオン(後編)です。
社員情報サンプルデータを使用して、APIを使用した「検索」や「分析方法」について解説されています。

テーマ
・サンプルデータのインデックス
・サンプルデータの説明
・Mapping 情報をもう少し詳し見る
・検索
  ・全てにマッチする Query
・検索結果の _source から任意のフィールドを除外
・ページング
・検索結果をフィルタリング
  ・Full text queries
  ・Term level queries
  ・Compound queries
  ・Query と Filter の違い
・集計
  ・Metrics Aggregations
  ・Bucket Aggregations
  ・Pipeline Aggregations
・検索条件のテンプート化(Search Template)
  ・Search Template の作成と登録
  ・Search Template を使って検索
  ・Search Template の展開結果を取得
  ・Search Template を削除
・さいごに

ページリンク
→Developers.IO →第8回 Elasticsearch 入門 API の使い方をハンズオンで理解する 〜後編〜

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Elasticsearch最新TOPICS

【OSS】Elastic社イベント、ElasticOSSプロダクト群「Elastic Stack 6.x」を紹介---「Elasticsearch」「Logstash」「Kibana」「Beats」(2017年12月17日 20:03)

Elasticは、12月14日、プライベートイベント「Elastic{ON}Tour」を都内で開催し、 ElasticOSSプロダクト群「Elastic Stack 6.x」に関する紹介などを行った。 【「Elastic Stack」とは】 Elastic社のオープンソースツール群の総称。 「Elasticsearch」「Logstash」「Kibana」「Beats」を含む。

Elasticsearch最新CLOSEUPコラム

イベント情報

無料資料プレゼント

AI技術の方向性と企業の活用シナリオ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter