Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Submit Search
Elastic searchとは_エンジニア勉強会20140212
•
10 likes
•
9,320 views
エンジニア勉強会 エスキュービズム
Follow
2月12日に開催されたエスキュービズムエンジニア勉強会で使用した資料になります。
Read less
Read more
Gallery
Report
Share
Gallery
Report
Share
1 of 37
Download now
Download to read offline
More Related Content
Elastic searchとは_エンジニア勉強会20140212
1.
ElasticSearchとは?
2.
OutLine ElasticSearch ElasticSearchとは � さわってみる � キーワード �
デモについて解説 � 情報源 �
3.
ElasticSearchとは � elastic � 弾力のある,伸縮自在の � しなやかな. �
〈人・感情など〉不幸があってもすぐ立ち直る,容易に屈し ない; 屈託のない. � 〈規則・考え方など〉融通性のある. � 不可算名詞: ゴムひも,ゴム入り生地 � 可算名詞 《主に米国で用いられる》 輪ゴム. 研究社 新英和中辞典
4.
ElasticSearchとは 【全文検索】機能を、 � 【RESTful】 APIで提供する、 �
ソフトウェア(あるいはフレームワーク) � (独断と偏見に基づく)
5.
ElasticSearchとは 全文検索エンジンApache Luceneがベース � RESTful
APIで操作 � 分散処理のサポート � � シャーディング、レプリケーション � プラグインによる拡張 � river � analysis 入力系 【構文解析】など
6.
ElasticSearchとは � どこで使われているか � foursquare ...など?
7.
OutLine ElasticSearchとは � さわってみる � キーワード �
デモについて解説 � 情報源 �
8.
さわってみる � とりあえずデモ � http://<demo � server ipaddr>/page/ docker
run -d otolab/demo20140212-elasticsearch /usr/local/bin/init.sh � 公開予定
9.
さわってみる:デモのコード � HTMLの構造 <form id="search"> <input name="query"
/> <input type="submit" /> </form> <form id="put"> <select name="user"> <option>otoan</option><option>naoto kato</option> </select> <textarea name="message" value=""></textarea> <input name="user" type="hidden" value="otoan" /> <input type="submit" /> </form>
10.
さわってみる:デモのコード � 書き込み $('form#put').on('submit', function(e){ e.preventDefault(); var $this
= $(this); var data = { postDate: (new Date()).toISOString(), user: $this.find('[name=user]').val(), message: $this.find('[name=message]').val() }; send('PUT', '/twitter/tweet/'+uuid(), data, function(data, dataType){ print(JSON.stringify(data)); } ); });
11.
さわってみる:デモのコード � 検索 $('form#search').on('submit', function(e){ e.preventDefault(); var query
= { "query": { "text": { "message": $(this).find('[name=query]').val() } } }; send('POST', '/twitter/tweet/_search', query, function(data){ if (data.hits) print_hits(data.hits); } ); });
12.
さわってみる:デモのコード � AJAX部分 function send(method, url,
data, success){ $.ajax({ url: url, type: method, dataType: 'json', data: JSON.stringify(data), success: success }); }
13.
さわってみる � 管理プラグイン � HQ � head
14.
OutLine ElasticSearchとは � さわってみる � キーワード �
デモについて解説 � 情報源 �
15.
キーワード Apache Lucene � 全文検索 � �
転置インデックス � N-Gram � 形態素解析 REST / RESTful API � NoSQL �
16.
キーワード:Apache Lucene � Apacheのプロジェクトの一つ 全文検索エンジンライブラリ � 100%
Pure Java � 1000万ドキュメント程度の規模まで1台で可能 � � 使われているサービス Wikipedia � LinkedIn � EcripseIDE � Apache Solr � � Web検索機能ソフトウェア
17.
キーワード:Apache Lucene 入力の解析、クエリの解析 � 転置インデックスによる検索 �
結果のスコアリング � ...などをサポート 出典:https://www.ibm.com/developerworks/jp/opensource/library/os-apache-lucenesearch/
18.
キーワード:全文検索 � 全文検索 = Full
Text Search � 文章等のごく一部を高速に探し出す検索 � 転置インデックス � キーワードがどのデータに属するか?を記録 � データ(文書)からキーワードを抽出する必要がある � (参考)B-Treeインデックス � � 完全一致(と前方一致)がきわめて高速 曖昧な検索には強くない
19.
キーワード:転置インデックス � 文章に単語が含まれる ⇔ 単語が含まれる文章を探す 出典:http://thinkit.co.jp/free/article/0710/17/1/
20.
キーワード:N-gram � N-gram � 決まった文字数で分割を繰り返す 出典:http://handin.sakura.ne.jp/archives/179
21.
キーワード:形態素解析 � 形態素解析 � 日本語の文法構造と辞書などから、単語を分割 (+意味づけ) � 実装としては。。 MeCab系(MeCab、Sen、Chasen、Gosen) �
KyTea � Kuromoji �
22.
キーワード:全文検索 � 文章(自然言語)を快適に検索するためには... � TOKENING � � � STEMMING � � Fishing, fished, Fish,
Fisher > fish FILTERLING � � , ()など記号での分割、日本語の分かち書き化 N-gram、形態素解析 ストップワード(て、に、を、は、など)、HTMLタグの除去 SCOREING � 順位付けを計算する Luceneはこれらの機構も提供している
23.
キーワード:REST � REST = REpresentational
State Transfer � � � � � 2000年にRoy Fielding氏が提唱した、分散システムにおいて複数の ソフトウェアを連携させるのに適した設計原則の集合 「セッションなどの状態管理を行わない(やり取りされる情報 はそれ自体で完結して解釈することができる)」 「情報を操作する命令の体系が予め定義・共有されている」 「すべての情報は汎用的な構文で一意に識別される」 「情報の内部に、別の情報や(その情報の別の)状態へのリ ンクを含めることができる」
24.
キーワード:RESTful API � RESTful API �
RESTの考え方で、設計されたAPI � HTTPプロトコルでのAPI通信 アクセスメソッド(PUT/GET/POST/DELETE)でデータ に対する動作(Create / Read / Update / Delete)を指 定 � URLでデータを特定 � リンクとして他の情報を記述 � � 例: � Twitter, Facebookなどの各種API � ログイン、アクセス制限でセッションを使うことが多いので、厳 密ではないが。。
25.
キーワード:NoSQL � Not Only SQL �
データベースはSQLだけじゃないぜ。(的なのり) � C10K問題への対応 � クライアント1万台問題(client 10,000)
26.
キーワード:NoSQL � リレーショナルDB (SQLのデータベース) � � � 理論的に整理され高性能 分散処理しづらい 明確な定義はないが、おおむね下記を備えたデータベース � 「“Next Generation
Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable.”」 (Elasticsearch as a NoSQL Database) � � 非リレーショナル、分散、オープンソース、水平スケール ElasticSearchもNoSQLの一種であると考える向きもある
27.
キーワード:NoSQL � タイプと実装 � Key Value
Store � Redis � ...etc � Column Oriented � Cassandra � ...etc � Document Oriented � MongoDB � ...etc � ElasticSearch(?)
28.
OutLine ElasticSearchとは � さわってみる � キーワード �
デモについて解説 � 情報源 �
29.
デモについて解説 � 使用プラグイン � elasticsearch-head � elasticsearch-HQ �
elasticsearch-analysis-kuromoji
30.
デモについて解説: elasticsearch � 本体 � Dockerで入れました。 � 使用方法 � デプロイ docker
pull reoring/docker-elasticsearch docker run -p 9200:9200 reoring/dockerelasticsearch � 今回は、nginxなどと動作するように調整
31.
デモについて解説: elasticsearch-head � 管理インターフェイスを提供するプラグイン � 使用方法 � プラグインインストール ./bin/plugin -i
mobz/elasticsearch-head � アクセス http://localhost:9200/_plugin/head/
32.
デモについて解説: elasticsearch-HQ � 管理インターフェイスを提供するプラグイン � 使用方法 � プラグインインストール ./bin/plugin -i
royrusso/elasticsearch-HQ � アクセス http://localhost:9200/_plugin/HQ/
33.
デモについて解説: elasticsearch-analysis-kuromoji � 日本語構文解析のプラグイン � 使用方法 � インストール ./bin/plugin -i elasticsearch/elasticsearch-analysis-kuromoji/1.7.0 � 設定 curl
-XPUT 'localhost:9200/twitter' -d '{ "settings": { "analysis": { "analyzer": { "default" : { "type" : "kuromoji" } } } } }' � twitter以下のデータのデフォルトの解析器として利用される
34.
デモについて解説: その他 � 入れたかったもの � Kibanaやfluentdとの連動 � River系のプラグイン �
elasticsearch-river-mongo � elasticsearch-river-rdbc � elasticsearch-river-fluentd まにあいませんでした。m(_ _)m
35.
OutLine ElasticSearchとは � さわってみる � キーワード �
デモについて解説 � 情報源 �
36.
情報源 � elasticsearchを紹介している記事を紹介 � チュートリアル � � � Elasticsearchチュートリアル http://code46.hatenablog.com/entry/2014/01/21/115620 fluentd + kibana � � ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ � http://www.slideshare.net/y-ken/elasticsearch-kibnana-fluentd-management-tips river-wikipedia � � � ElasticSearchにプラグインで日本語Wikipediaデータを入れてみました http://blog.johtani.info/blog/2013/08/23/index-wikipedia-ja-to-elasticsearch/ river-rdbc
+ kibana � � ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ � http://www.slideshare.net/y-ken/elasticsearch-kibnana-fluentd-management-tips river-mongodb � ElasticSearch + MongoDBをNode.jsで操作する � http://nextdeveloper.hatenablog.com/entry/2014/01/08/120203
37.
おわり � ご清聴ありがとうございます。
Download now