SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
@johtani	
  
p  所属:㈱シーマーク	
  
p  氏名:大谷 純	
  
p  twitter:@johtani	
  
p  ブログ:	
  
  http://johtani.jugem.jp	
  

p  「Apache	
  Solr入門」	
  
     の著者の一人	
  
     まだ売ってるはず。	
  
p  lucene-­‐gosenのcommitter
p  pyfes初参加(なぜか、家族イベントとかぶっ
 て参加できず)	
  

p  Javaがメインで、Pythonあんまりやらないです。
 すみません。	
  

p  シールが欲しくてやってきました。	
  
p  単語集	
  


p  elasticsearchって?	
  


p  アーキテクチャ概要	
  
p  単語集	
  


p  elasticsearchって?	
  


p  アーキテクチャ概要	
  
p  転置インデックス(inverted	
  index)と	
  
  shard	
  

p  analysisとtextとterm	
  


p  cluseterとnode	
  


p  documentとfield	
  
p  analysisとtextとterm	
  
  p    text	
  
         p    入力された文字列。文章	
  


  p    analysis	
  
         p  入力された文字列を解析しtermという単位に分解する処理	
  
         p  例:N-­‐Gram、形態素解析、空白区切りなど	
  



  p    term	
  
         p  textを解析した結果として出力される単語	
  
         p  この単語を元に転置インデックスを作成	
  
p  転置インデックス	
 

               1           カツオはサザエの弟	
  
                                                         対象とする文章(ドキュメント)に	
  
               2           サザエはワカメの姉	
                   IDを付与	
 




カツオ	
  1   は       1       サザエ	
  1   の 1        弟   1
                                                         文章を単語に分割し、	
  
サザエ	
  2   は       2       ワカメ	
  2   の 2        姉   2   単語:ドキュメントIDと整理	
 

                                          	
  
                                          	
 

           の           1    2    ワカメ	
           2
                                                         単語をキー、ドキュメントIDの	
  
           は           1    2         弟          1       配列を値とする表を作成	
  
                                                           =	
  
    カツオ	
              1              姉          2       転置インデックス	
 

    サザエ	
              1    2
p  転置インデックスの検索	
 

                      転置インデックス	
 


                        の	
    1	
  2	
 
  検索クエリ	
                                         検索結果	
 
                        は	
    1	
  2	
 
  カツオ	
 
             	
     カツオ	
      1	
         	
       1	
 
   AND	
     	
                            	
 
                    サザエ	
      1	
  2	
 
  サザエ	
 
                    ワカメ	
      2	
 

                        弟	
    1	
 

                        姉	
    2
p  documentとfield 	
  	
  
   p    document	
  
          p  LuceneでRDBのレコードに相当するものを意味する	
  
          p  documentが検索結果に出てくる1件分のデータ	
  




   p    field	
  
          p  RDBのカラムに相当するもの	
  
          p  documentは複数のfieldから構成される	
  

          p  転置インデックスが作成される最小単位	
  

          p  fieldには、保存用(stored)とインデックス(indexed)
              がある。	
  
p  indexとshard	
  
   p    index	
  
          p  RDBのデータベースに相当する概念	
  
          p  複数のフィールドの転置インデックスから構成	
  



   p    shard	
  
          p  Luceneの1つのインスタンスに相当	
  
          p  複数のshardを束ねて1つのインデックスとすることが可能	
  

          p  レプリカされるインデックスの単位でもある
p  clusterとnode	
  
   p    cluster	
  
          p  1つ以上のnodeから構成されるnodeの集合	
  
          p  1つのマスターノードが自動で選出される。	
  

          p  マスターノードが故障したら、別のものが選出される	
  

          p  マスターノードの役割はクラスターの状態のメンテナンスや
              ノードの追加、削除によりshardを再配置するときの動作	
 


   p    node	
  
          p  elasticsearchのインスタンス	
  
          p  node内部に複数のshardを保持できる
Cluster	
 
   Node	
                  Node	
 


              Shard0	
                Shard0	
  
             (Index1)	
              (Index2)	
 



              Shard1	
                Shard1	
  
             (Index2)	
              (Index1)
p  単語集	
  


p  elasticsearchって?	
  


p  アーキテクチャ概要	
  
p  分散型でRESTfulな検索エンジン	
  


p  Open	
  Source	
  Software	
  
     p  Apache	
  Software	
  License	
  Version	
  2.0	
  




p  Apache	
  Luceneをベースに構築	
  


p  スキーマフリー&ドキュメント指向	
  
                                                               トレードマーク?	
 

p  マルチテナント対応	
  
p  JSONで設定、インデックス、検索が可能	
  
 p  もちろん、設定ファイルによる設定も可能	
  
 p  URLでIndex名、データタイプを表現	
  

 p  例:設定(shardとreplicaの数を設定)	
  
       $	
  curl	
  -­‐XPUT	
  http://localhost:9200/twitter/tweet/	
  -­‐d	
  '{	
  
       	
  	
  	
  	
  "settings"	
  :	
  {	
  
       	
  	
  	
  	
  	
  	
  	
  	
  "number_of_shards"	
  :	
  2,	
  
       	
  	
  	
  	
  	
  	
  	
  	
  "number_of_replicas"	
  :	
  3	
  
       	
  	
  	
  	
  }	
  
       }‘	
  
       	
  
       インデックス毎に設定が可能。
p  インデックス(データ登録)	
  
 p    登録ももちろんJSONで	
  
                                                             Index名	
    Type名	
  ID	
 


       $	
  curl	
  -­‐XPUT	
  'http://localhost:9200/twitter/tweet/1'	
  -­‐d	
  '{	
  
       	
  	
  	
  	
  "user"	
  :	
  “johtani",	
  
       	
  	
  	
  	
  "post_date"	
  :	
  "2012-­‐07-­‐15T14:12:12",	
  
       	
  	
  	
  	
  "message"	
  :	
  “I	
  talk	
  to	
  elasticsearch	
  at	
  #pyfes"	
  
       }‘	
  
       	
  
       フィールドは自動で型を判別して登録。	
  
       (もちろん指定も可能)	
  
       IDを自動で生成も可能(URLのIDを指定せずに登録すればOK)
       IDのハッシュ値でshardにルーティング(ID以外にパラメータ
       で指定も可能)	
  
p  取得(GET)	
  
  curl	
  -­‐XGET	
  ‘http://localhost:9200/twitter/tweet/1’	
  
  	
  
  curl	
  -­‐XGET	
  'http://localhost:9200/twitter/tweet/1?
  fields=user,message'	
  
  	
  
  データの取得。2つ目は取得するフィールドを指定してからの取得。	
  
  fieldsパラメータで取得できるのはstoredフィールドのみ	
  
p  削除(DELETE)	
  
  curl	
  -­‐XDELETE	
  'http://localhost:9200/twitter/tweet/1‘	
  
  	
  
  curl	
  -­‐XDELETE	
  'http://localhost:9200/twitter/tweet/_query?
  q=user:johtani‘	
  
  クエリによる削除も可能	
  
p  検索(JSONベースの検索DSL)	
  

  $	
  curl	
  -­‐XGET	
  ‘http://localhost:9200/twitter/tweet/_search’	
  -­‐d	
  ‘{	
  
  	
  	
  	
  	
  “query”:	
  {	
  "term"	
  :	
  {	
  "user"	
  :	
  “johtani"	
  }	
  }	
  }'	
  
        	
  
        例:userフィールドをjohtaniで検索	
  
        	
  
  p    検索機能としては、以下をカバー	
  
        ファセット、絞り込み検索、ハイライト、Geo検索、	
  
        範囲検索、カスタムスコアなどなど	
  
        http://www.elasticsearch.org/guide/reference/query-­‐dsl/
p  ソースはGithubで公開	
  
   p    https://github.com/elasticsearch/
         elasticsearch	
  


p  Apache	
  Software	
  License	
  V2.0	
  


p  最新安定版は0.19.8(trunkが0.20.0)	
  
p  Apache	
  Lucene	
  
   p  Javaで書かれた、転置インデックスのライブラリ	
  
   p  ハイライト、Geo検索などいろいろと検索に関連する機
       能も充実	
  


p  elasticsearchの最新版では3.6.1を利用	
  
   p    利用モジュール	
  
         p    analyzer、core、highlighter、memory、queries
p    Document(JSON)で登録すると型を推測してイン
      デックスに登録	
  

p    もちろん、厳密に指定して登録も可能	
  
       p    Schema	
  Mapping	
  

      $	
  curl	
  -­‐XPUT	
  'http://localhost:9200/twitter/tweet/_mapping'	
  -­‐d	
  ‘{	
  
      	
  	
  	
  	
  "tweet"	
  :	
  {	
  
      	
  	
  	
  	
  	
  	
  	
  	
  "properties"	
  :	
  {	
  
      	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "message"	
  :	
  {"type"	
  :	
  "string",	
  "store"	
  :	
  "yes"}	
  
      	
  	
  	
  	
  	
  	
  	
  	
  }	
  
      	
  	
  	
  	
  }	
  
      }'
p  複数のインデックスを保持	
  
 p     URLの一部にインデックス名を保持	
  
 	
                                                 Index名	
 
 	
  
 $	
  curl	
  -­‐XPUT	
  http://localhost:9200/elasticsearch	
  

 	
  
p  複数のインデックスに対する検索も可能	
  
 p     インデックス名をカンマ区切りで指定すればOK	
  

 $	
  curl	
  -­‐XGET	
  http://localhost:9200/twitter,elasticsearch/tweet/
 _search?q=message:elasticsearch
p  Riverはelasticsearchクラスタにデータを流
    し込むプラガブルなサービス	
  
p  プラグインという形で、elasticsearchに組み
    込み可能	
  
 p  CouchDB	
  
 p  RabbitMQ	
  

 p  Twitter	
  Stream	
  

 p  Wikipedia	
  
p  JSON	
  over	
  HTTPが基本	
  
p  Java、GroovyのAPIもある	
  
p  その他にClientsライブラリも存在	
  
   p  http://www.elasticsearch.org/guide/
       appendix/clients.html	
  
   p  pyes	
  –	
  Python	
  Client	
  

   p  Tire	
  –	
  Ruby	
  API&DSL,	
  with	
  Active	
  Record/
       ActiveModel	
  integration	
  
   p  erlastic_search	
  –	
  Erlang	
  client	
  

   p  その他にScala、.NET、PHPなどなど	
  
p  様々なライブラリなどとの連携も	
  
 p  Grails	
  :	
  ElasticSearch	
  Grails	
  plugin	
  
 p  django-­‐elasticsearch	
  :	
  Django	
  ElasticSearch	
  
     Bachend	
  
 p  Wonderdog	
  :	
  Hadoop	
  bulk	
  loader	
  into	
  
     elasticsearch	
  
 p  elasticflume	
  :	
  Flume	
  sink	
  implementation	
  

 p  elasticsearch-­‐mocksolrplugin	
  :	
  Use	
  Solr	
  
     clients/tools	
  with	
  ElasticSearch	
  
p  ガイド(セットアップ、各種APIも)	
  
 p    トップ	
  
       http://www.elasticsearch.org/guide/	
  

 p    各種操作用API	
  
       http://www.elasticsearch.org/guide/
       reference/api/	
  

 p    検索クエリDSL	
  
       http://www.elasticsearch.org/guide/
       reference/query-­‐dsl/	
  
p  単語集	
  


p  elasticsearchって?	
  


p  アーキテクチャ概要	
  
Elasticsearch(Node)	
 

                 クライアント向けAPI	
                      ノード間通信	
 

      HTTP	
         Thrift	
      memcached	
      Transport	
      JMX	
 
                                    Network	
 
                  Cluster	
 
    Thread	
         Indices	
     Scripting	
      Discovery	
 
     Pool	
 
                                      Shard	
  




                                                                          Gateway	
 
                  Index	
          Allocation	
  
                    Analysis	
                      Show	
  Log	
 

    Plugin	
 
                    Translog	
        Merge	
         Store	
  


                                                                     ※妄想しながら書いてます
p  HTTP	
  
    p  APIをHTTPで提供するモジュール	
  
    p  Nettyを利用したサービス	
  

p  memcached	
  
    p  APIをmemcachedプロトコルで提供するモジュール	
  
    p  transport-­‐memcachedプラグインが必要	
  

p  Thrift	
  
    p  APIをThriftで提供するモジュール	
  
    p  transport-­‐thriftモジュールが必要	
  
p  Transport	
  
    p  クラスタ内部のノード間通信モジュール	
  
    p  Nettyベースの通信	
  

    p  例:HTTP	
  GETリクエストを他のノードに転送	
  



p  JMX	
  
    p    JMXでノードの情報にアクセス可能にするモジュール	
  


p  Network	
  
    p    HTTPやTransportなどのネットワーク系のモジュー
          ルの設定を共通化するモジュール
p  Thread	
  Pool	
  
   p  ノードが持つスレッドプールの管理をするモジュー
       ル	
  
   p  各処理用のプールを保持	
  
         p  インデックス	
  
         p  検索	
  

         p  バルク	
  

         p  リフレッシュなどなど	
  

   p    cache、fixed、blockingなどのタイプがある。	
  
         p    Fixed、blockingはキューのサイズなども指定可能	
  
p  Plugin	
  
   p  各種プラグインを管理するモジュール	
  
   p  プラグイン名は「elasticsearch-­‐」で始まる	
  

   p  Githubにあるプラグインをダウンロードしてインス
       トールする機能もある	
  

   p  カスタムAnalyzer、カスタムDiscoveryなど	
  
   p  GUI用のプラグインも	
  
       https://github.com/mobz/elasticsearch-­‐head
p  Cluster	
  
    p    Shardの割り当て処理(レプリカ、リバランス、リカ
          バリ、追加削除など)を扱うモジュール	
  
p  Node	
  
    p  ノードの挙動を設定するモジュール。	
  
    p  例:データを保持するノード、HTTP受付処理をする
        ノードなどにすることが可能	
  
p  Discovery	
  
    p  クラスタ内で、ノードを見つけるためのモジュール	
  
        (マスターノード選出とか)	
  
    p  Zen、EC2、Zookeeperという種類がある
p  Indices	
  
   p  Indexのバッファサイズなどの設定	
  
   p  Index生成など、Indexに関連する処理のモジュール	
  

p  Gateway	
  
   p  クラスタメタデータとインデックスを保存する機能	
 
   p  保存先はLocal、Shared	
  FS、Hadoop、S3などあり
p  Analysis	
  
   p    インデックス、検索時に利用されるAnalyzerの設定
         など	
  
p  Mapper	
  
   p  型マッピング定義を扱うモジュール	
 
   p  入力データをどのAnalyzerを利用して解析するかな
       どを静的/動的に指定可能	
  
p  Store	
  
   p    インデックスの一時保存を扱うモジュール	
  
         p    永続化はGatewayが行う	
  
   p    メモリ、ディスクが選択可能	
  
         p    Local	
  Gatewayを利用している場合はメモリを使わない	
  
p  Translog	
  
   p  Transaction	
  log/write	
  ahead	
  logを扱うモ
       ジュール	
  
   p  Flushのタイミングなどを指定可能	
  
p  Shard	
  Allocation	
  
    p    インデックスの配置をコントロール	
  
p  Show	
  Log	
  
    p  遅い検索クエリをログ出力するモジュール	
  
    p  しきい値など設定可能	
  

p  Cache	
  
    p  インデックスに関連するキャッシュを管理	
  
    p  検索結果やフィールドの価をキャッシュ	
  
p  HP	
  
    p    http://www.elasticsearch.org/	
  
p  スライド	
  
    p  https://speakerdeck.com/u/kimchy/p/the-­‐
        road-­‐to-­‐a-­‐distributed-­‐search-­‐engine	
  
    p  https://speakerdeck.com/u/kimchy/p/
        elasticsearch-­‐big-­‐data-­‐search-­‐analytics	
  
    p  http://spinscale.github.com/elasticsearch/
        2012-­‐03-­‐jugm.html#/
p  ということで、まだまだ入門中です。	
  


p  一緒に勉強してくれる人、募集中です。	
  


p  @johtaniまで@ツイートお願いします
p    guava	
  -­‐	
  Googleが公開しているJava用こらライブラリ。collection周り、キャッシュを
      主に利用	
 
p    trove	
  -­‐	
  プリミティブ型に関するコレクションライブラリ	
 
p    joda-­‐time	
  -­‐	
  日付用ライブラリ	
 
p    mvel2	
  -­‐	
  スクリプトエンジン。スクリプトモジュールで利用	
 
p    jackson	
  -­‐	
  JSONライブラリ	
 
p    snakeyaml	
  -­‐	
  YAMLライブラリ	
 
p    netty	
  -­‐	
  軽量通信ライブラリ?	
 
p    log4j	
  -­‐	
  Logライブラリ	
 
p    slf4j	
  -­‐	
  Logライブラリ	
 
p    jna	
  -­‐	
  	
  
p    sigar	
  -­‐	
  The	
  Sigar	
  API	
  provides	
  a	
  portable	
  interface	
  for	
  gathering	
  system	
  
      information.モニタリング用	
 
p    testng	
  -­‐	
  	
  
p    junit	
  -­‐	
  Unitテスト用ライブラリ	
 
p    bsh	
  -­‐	
  	
  
p    jcommander	
  -­‐	
  	
  
p    hamcrest	
  -­‐	
  	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Issei Nishigata
 
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所Yu Sugawara
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会Nao Minami
 
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache LuceneGetting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache LuceneEiji Shinohara
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringEiji Shinohara
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門だいすけ さとう
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3moai kids
 
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境Shinsuke Sugaya
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Tadayasu Yotsu
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書Masahiko Toyoshi
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ朋哉 池田
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」de:code 2017
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo dbYuji Isobe
 
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessShinsuke Sugaya
 

Was ist angesagt? (20)

Sc2009autumn s2robot
Sc2009autumn s2robotSc2009autumn s2robot
Sc2009autumn s2robot
 
Hive chapter 2
Hive chapter 2Hive chapter 2
Hive chapter 2
 
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
 
Fluentdへようこそ
FluentdへようこそFluentdへようこそ
Fluentdへようこそ
 
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会RailsエンジニアのためのSQLチューニング速習会
RailsエンジニアのためのSQLチューニング速習会
 
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache LuceneGetting Started Japanese Search and Calculate Similarity with Apache Lucene
Getting Started Japanese Search and Calculate Similarity with Apache Lucene
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
 
Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門Ruby on Rails on MySQL チューニング入門
Ruby on Rails on MySQL チューニング入門
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3
 
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
 
Solrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ FessSolrベースの全文検索サーバ Fess
Solrベースの全文検索サーバ Fess
 

Ähnlich wie Elasticsearch入門 pyfes 201207

セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDBHirosuke Asano
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouchYohei Sasaki
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめKazumune Katagiri
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEtsuji Nakai
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話Preferred Networks
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringMakoto Ohnami
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-uedayou
 
Sagittariusの紹介
Sagittariusの紹介Sagittariusの紹介
Sagittariusの紹介Kato Takashi
 
php7's ast
php7's astphp7's ast
php7's astdo_aki
 
Linux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworksLinux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworkstripodworks
 
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計y_taka_23
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめMikiya Okuno
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ Daisuke Ikeda
 

Ähnlich wie Elasticsearch入門 pyfes 201207 (20)

セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDB
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
Silkについて
SilkについてSilkについて
Silkについて
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめ
 
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみましたEucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo Spring
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
 
Sagittariusの紹介
Sagittariusの紹介Sagittariusの紹介
Sagittariusの紹介
 
php7's ast
php7's astphp7's ast
php7's ast
 
Linux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworksLinux Kernel Seminar in tripodworks
Linux Kernel Seminar in tripodworks
 
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 

Kürzlich hochgeladen

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Kürzlich hochgeladen (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Elasticsearch入門 pyfes 201207

  • 2. p  所属:㈱シーマーク   p  氏名:大谷 純   p  twitter:@johtani   p  ブログ:   http://johtani.jugem.jp   p  「Apache  Solr入門」    の著者の一人    まだ売ってるはず。   p  lucene-­‐gosenのcommitter
  • 3. p  pyfes初参加(なぜか、家族イベントとかぶっ て参加できず)   p  Javaがメインで、Pythonあんまりやらないです。 すみません。   p  シールが欲しくてやってきました。  
  • 4. p  単語集   p  elasticsearchって?   p  アーキテクチャ概要  
  • 5. p  単語集   p  elasticsearchって?   p  アーキテクチャ概要  
  • 6. p  転置インデックス(inverted  index)と   shard   p  analysisとtextとterm   p  cluseterとnode   p  documentとfield  
  • 7. p  analysisとtextとterm   p  text   p  入力された文字列。文章   p  analysis   p  入力された文字列を解析しtermという単位に分解する処理   p  例:N-­‐Gram、形態素解析、空白区切りなど   p  term   p  textを解析した結果として出力される単語   p  この単語を元に転置インデックスを作成  
  • 8. p  転置インデックス 1 カツオはサザエの弟   対象とする文章(ドキュメント)に   2 サザエはワカメの姉 IDを付与 カツオ 1 は 1 サザエ 1 の 1 弟 1 文章を単語に分割し、   サザエ 2 は 2 ワカメ 2 の 2 姉 2 単語:ドキュメントIDと整理   の 1 2 ワカメ 2 単語をキー、ドキュメントIDの   は 1 2 弟 1 配列を値とする表を作成     =   カツオ 1 姉 2 転置インデックス サザエ 1 2
  • 9. p  転置インデックスの検索 転置インデックス の 1 2 検索クエリ 検索結果 は 1 2 カツオ   カツオ 1   1 AND サザエ 1 2 サザエ ワカメ 2 弟 1 姉 2
  • 10. p  documentとfield     p  document   p  LuceneでRDBのレコードに相当するものを意味する   p  documentが検索結果に出てくる1件分のデータ   p  field   p  RDBのカラムに相当するもの   p  documentは複数のfieldから構成される   p  転置インデックスが作成される最小単位   p  fieldには、保存用(stored)とインデックス(indexed) がある。  
  • 11. p  indexとshard   p  index   p  RDBのデータベースに相当する概念   p  複数のフィールドの転置インデックスから構成   p  shard   p  Luceneの1つのインスタンスに相当   p  複数のshardを束ねて1つのインデックスとすることが可能   p  レプリカされるインデックスの単位でもある
  • 12. p  clusterとnode   p  cluster   p  1つ以上のnodeから構成されるnodeの集合   p  1つのマスターノードが自動で選出される。   p  マスターノードが故障したら、別のものが選出される   p  マスターノードの役割はクラスターの状態のメンテナンスや ノードの追加、削除によりshardを再配置するときの動作 p  node   p  elasticsearchのインスタンス   p  node内部に複数のshardを保持できる
  • 13. Cluster Node Node Shard0   Shard0   (Index1) (Index2) Shard1   Shard1   (Index2) (Index1)
  • 14. p  単語集   p  elasticsearchって?   p  アーキテクチャ概要  
  • 15. p  分散型でRESTfulな検索エンジン   p  Open  Source  Software   p  Apache  Software  License  Version  2.0   p  Apache  Luceneをベースに構築   p  スキーマフリー&ドキュメント指向   トレードマーク? p  マルチテナント対応  
  • 16. p  JSONで設定、インデックス、検索が可能   p  もちろん、設定ファイルによる設定も可能   p  URLでIndex名、データタイプを表現   p  例:設定(shardとreplicaの数を設定)   $  curl  -­‐XPUT  http://localhost:9200/twitter/tweet/  -­‐d  '{          "settings"  :  {                  "number_of_shards"  :  2,                  "number_of_replicas"  :  3          }   }‘     インデックス毎に設定が可能。
  • 17. p  インデックス(データ登録)   p  登録ももちろんJSONで   Index名 Type名 ID $  curl  -­‐XPUT  'http://localhost:9200/twitter/tweet/1'  -­‐d  '{          "user"  :  “johtani",          "post_date"  :  "2012-­‐07-­‐15T14:12:12",          "message"  :  “I  talk  to  elasticsearch  at  #pyfes"   }‘     フィールドは自動で型を判別して登録。   (もちろん指定も可能)   IDを自動で生成も可能(URLのIDを指定せずに登録すればOK) IDのハッシュ値でshardにルーティング(ID以外にパラメータ で指定も可能)  
  • 18. p  取得(GET)   curl  -­‐XGET  ‘http://localhost:9200/twitter/tweet/1’     curl  -­‐XGET  'http://localhost:9200/twitter/tweet/1? fields=user,message'     データの取得。2つ目は取得するフィールドを指定してからの取得。   fieldsパラメータで取得できるのはstoredフィールドのみ   p  削除(DELETE)   curl  -­‐XDELETE  'http://localhost:9200/twitter/tweet/1‘     curl  -­‐XDELETE  'http://localhost:9200/twitter/tweet/_query? q=user:johtani‘   クエリによる削除も可能  
  • 19. p  検索(JSONベースの検索DSL)   $  curl  -­‐XGET  ‘http://localhost:9200/twitter/tweet/_search’  -­‐d  ‘{          “query”:  {  "term"  :  {  "user"  :  “johtani"  }  }  }'     例:userフィールドをjohtaniで検索     p  検索機能としては、以下をカバー   ファセット、絞り込み検索、ハイライト、Geo検索、   範囲検索、カスタムスコアなどなど   http://www.elasticsearch.org/guide/reference/query-­‐dsl/
  • 20. p  ソースはGithubで公開   p  https://github.com/elasticsearch/ elasticsearch   p  Apache  Software  License  V2.0   p  最新安定版は0.19.8(trunkが0.20.0)  
  • 21. p  Apache  Lucene   p  Javaで書かれた、転置インデックスのライブラリ   p  ハイライト、Geo検索などいろいろと検索に関連する機 能も充実   p  elasticsearchの最新版では3.6.1を利用   p  利用モジュール   p  analyzer、core、highlighter、memory、queries
  • 22. p  Document(JSON)で登録すると型を推測してイン デックスに登録   p  もちろん、厳密に指定して登録も可能   p  Schema  Mapping   $  curl  -­‐XPUT  'http://localhost:9200/twitter/tweet/_mapping'  -­‐d  ‘{          "tweet"  :  {                  "properties"  :  {                          "message"  :  {"type"  :  "string",  "store"  :  "yes"}                  }          }   }'
  • 23. p  複数のインデックスを保持   p  URLの一部にインデックス名を保持     Index名   $  curl  -­‐XPUT  http://localhost:9200/elasticsearch     p  複数のインデックスに対する検索も可能   p  インデックス名をカンマ区切りで指定すればOK   $  curl  -­‐XGET  http://localhost:9200/twitter,elasticsearch/tweet/ _search?q=message:elasticsearch
  • 24. p  Riverはelasticsearchクラスタにデータを流 し込むプラガブルなサービス   p  プラグインという形で、elasticsearchに組み 込み可能   p  CouchDB   p  RabbitMQ   p  Twitter  Stream   p  Wikipedia  
  • 25. p  JSON  over  HTTPが基本   p  Java、GroovyのAPIもある   p  その他にClientsライブラリも存在   p  http://www.elasticsearch.org/guide/ appendix/clients.html   p  pyes  –  Python  Client   p  Tire  –  Ruby  API&DSL,  with  Active  Record/ ActiveModel  integration   p  erlastic_search  –  Erlang  client   p  その他にScala、.NET、PHPなどなど  
  • 26. p  様々なライブラリなどとの連携も   p  Grails  :  ElasticSearch  Grails  plugin   p  django-­‐elasticsearch  :  Django  ElasticSearch   Bachend   p  Wonderdog  :  Hadoop  bulk  loader  into   elasticsearch   p  elasticflume  :  Flume  sink  implementation   p  elasticsearch-­‐mocksolrplugin  :  Use  Solr   clients/tools  with  ElasticSearch  
  • 27. p  ガイド(セットアップ、各種APIも)   p  トップ   http://www.elasticsearch.org/guide/   p  各種操作用API   http://www.elasticsearch.org/guide/ reference/api/   p  検索クエリDSL   http://www.elasticsearch.org/guide/ reference/query-­‐dsl/  
  • 28. p  単語集   p  elasticsearchって?   p  アーキテクチャ概要  
  • 29. Elasticsearch(Node) クライアント向けAPI ノード間通信 HTTP Thrift memcached Transport JMX Network Cluster Thread   Indices Scripting Discovery Pool Shard   Gateway Index Allocation   Analysis   Show  Log Plugin Translog   Merge   Store   ※妄想しながら書いてます
  • 30. p  HTTP   p  APIをHTTPで提供するモジュール   p  Nettyを利用したサービス   p  memcached   p  APIをmemcachedプロトコルで提供するモジュール   p  transport-­‐memcachedプラグインが必要   p  Thrift   p  APIをThriftで提供するモジュール   p  transport-­‐thriftモジュールが必要  
  • 31. p  Transport   p  クラスタ内部のノード間通信モジュール   p  Nettyベースの通信   p  例:HTTP  GETリクエストを他のノードに転送   p  JMX   p  JMXでノードの情報にアクセス可能にするモジュール   p  Network   p  HTTPやTransportなどのネットワーク系のモジュー ルの設定を共通化するモジュール
  • 32. p  Thread  Pool   p  ノードが持つスレッドプールの管理をするモジュー ル   p  各処理用のプールを保持   p  インデックス   p  検索   p  バルク   p  リフレッシュなどなど   p  cache、fixed、blockingなどのタイプがある。   p  Fixed、blockingはキューのサイズなども指定可能  
  • 33. p  Plugin   p  各種プラグインを管理するモジュール   p  プラグイン名は「elasticsearch-­‐」で始まる   p  Githubにあるプラグインをダウンロードしてインス トールする機能もある   p  カスタムAnalyzer、カスタムDiscoveryなど   p  GUI用のプラグインも   https://github.com/mobz/elasticsearch-­‐head
  • 34. p  Cluster   p  Shardの割り当て処理(レプリカ、リバランス、リカ バリ、追加削除など)を扱うモジュール   p  Node   p  ノードの挙動を設定するモジュール。   p  例:データを保持するノード、HTTP受付処理をする ノードなどにすることが可能   p  Discovery   p  クラスタ内で、ノードを見つけるためのモジュール   (マスターノード選出とか)   p  Zen、EC2、Zookeeperという種類がある
  • 35. p  Indices   p  Indexのバッファサイズなどの設定   p  Index生成など、Indexに関連する処理のモジュール   p  Gateway   p  クラスタメタデータとインデックスを保存する機能 p  保存先はLocal、Shared  FS、Hadoop、S3などあり
  • 36. p  Analysis   p  インデックス、検索時に利用されるAnalyzerの設定 など   p  Mapper   p  型マッピング定義を扱うモジュール p  入力データをどのAnalyzerを利用して解析するかな どを静的/動的に指定可能  
  • 37. p  Store   p  インデックスの一時保存を扱うモジュール   p  永続化はGatewayが行う   p  メモリ、ディスクが選択可能   p  Local  Gatewayを利用している場合はメモリを使わない   p  Translog   p  Transaction  log/write  ahead  logを扱うモ ジュール   p  Flushのタイミングなどを指定可能  
  • 38. p  Shard  Allocation   p  インデックスの配置をコントロール   p  Show  Log   p  遅い検索クエリをログ出力するモジュール   p  しきい値など設定可能   p  Cache   p  インデックスに関連するキャッシュを管理   p  検索結果やフィールドの価をキャッシュ  
  • 39. p  HP   p  http://www.elasticsearch.org/   p  スライド   p  https://speakerdeck.com/u/kimchy/p/the-­‐ road-­‐to-­‐a-­‐distributed-­‐search-­‐engine   p  https://speakerdeck.com/u/kimchy/p/ elasticsearch-­‐big-­‐data-­‐search-­‐analytics   p  http://spinscale.github.com/elasticsearch/ 2012-­‐03-­‐jugm.html#/
  • 40. p  ということで、まだまだ入門中です。   p  一緒に勉強してくれる人、募集中です。   p  @johtaniまで@ツイートお願いします
  • 41. p  guava  -­‐  Googleが公開しているJava用こらライブラリ。collection周り、キャッシュを 主に利用 p  trove  -­‐  プリミティブ型に関するコレクションライブラリ p  joda-­‐time  -­‐  日付用ライブラリ p  mvel2  -­‐  スクリプトエンジン。スクリプトモジュールで利用 p  jackson  -­‐  JSONライブラリ p  snakeyaml  -­‐  YAMLライブラリ p  netty  -­‐  軽量通信ライブラリ? p  log4j  -­‐  Logライブラリ p  slf4j  -­‐  Logライブラリ p  jna  -­‐     p  sigar  -­‐  The  Sigar  API  provides  a  portable  interface  for  gathering  system   information.モニタリング用 p  testng  -­‐     p  junit  -­‐  Unitテスト用ライブラリ p  bsh  -­‐     p  jcommander  -­‐     p  hamcrest  -­‐