狠狠撸

狠狠撸Share a Scribd company logo
贰濒补蝉迟颈肠厂别补谤肠丑とは?
OutLine
ElasticSearch
ElasticSearchとは
? さわってみる
? キーワード
? デモについて解説
? 情報源
?
ElasticSearchとは
?

elastic
? 弾力のある,伸縮自在の
? しなやかな.
? 〈人?感情など〉不幸があってもすぐ立ち直る,容易に屈し

ない; 屈託のない.
? 〈規則?考え方など〉融通性のある.
? 不可算名詞: ゴムひも,ゴム入り生地
? 可算名詞 《主に米国で用いられる》 輪ゴム.

研究社 新英和中辞典
ElasticSearchとは
【全文検索】機能を、
? 【RESTful】 APIで提供する、
? ソフトウェア(あるいはフレームワーク)
?

(独断と偏見に基づく)
ElasticSearchとは
全文検索エンジンApache Luceneがベース
? RESTful APIで操作
? 分散処理のサポート
?

? シャーディング、レプリケーション

?

プラグインによる拡張
? river
? analysis

入力系
【構文解析】など
ElasticSearchとは
?

どこで使われているか
? foursquare

...など?
OutLine
ElasticSearchとは
? さわってみる
? キーワード
? デモについて解説
? 情報源
?
さわってみる
?

とりあえずデモ
? http://<demo
?

server ipaddr>/page/

docker run -d otolab/demo20140212-elasticsearch /usr/local/bin/init.sh
?

公開予定
さわってみる:デモのコード
?

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>
さわってみる:デモのコード
?

書き込み
$('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)); }
);
});
さわってみる:デモのコード
?

検索
$('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); }
);
});
さわってみる:デモのコード
?

AJAX部分
function send(method, url, data, success){
$.ajax({
url: url,
type: method,
dataType: 'json',
data: JSON.stringify(data),
success: success
});
}
さわってみる
?

管理プラグイン
? HQ
? head
OutLine
ElasticSearchとは
? さわってみる
? キーワード
? デモについて解説
? 情報源
?
キーワード
Apache Lucene
? 全文検索
?

? 転置インデックス
? N-Gram
? 形態素解析

REST / RESTful API
? NoSQL
?
キーワード:Apache Lucene
?

Apacheのプロジェクトの一つ
全文検索エンジンライブラリ
? 100% Pure Java
? 1000万ドキュメント程度の規模まで1台で可能
?

?

使われているサービス
Wikipedia
? LinkedIn
? EcripseIDE
? Apache Solr
?

?

Web検索機能ソフトウェア
キーワード:Apache Lucene
入力の解析、クエリの解析
? 転置インデックスによる検索
? 結果のスコアリング
?

...などをサポート

出典:https://www.ibm.com/developerworks/jp/opensource/library/os-apache-lucenesearch/
キーワード:全文検索
?

全文検索 = Full Text Search
? 文章等のごく一部を高速に探し出す検索

?

転置インデックス
? キーワードがどのデータに属するか?を記録
? データ(文書)からキーワードを抽出する必要がある

?

(参考)B-Treeインデックス
?
?

完全一致(と前方一致)がきわめて高速
曖昧な検索には強くない
キーワード:転置インデックス
?

文章に単語が含まれる
? 単語が含まれる文章を探す

出典:http://thinkit.co.jp/free/article/0710/17/1/
キーワード:N-gram
?

N-gram
? 決まった文字数で分割を繰り返す

出典:http://handin.sakura.ne.jp/archives/179
キーワード:形態素解析
?

形態素解析
? 日本語の文法構造と辞書などから、単語を分割

(+意味づけ)
? 実装としては。。

MeCab系(MeCab、Sen、Chasen、Gosen)
? KyTea
? Kuromoji
?
キーワード:全文検索
?

文章(自然言語)を快適に検索するためには...
?

TOKENING
?
?

?

STEMMING
?

?

Fishing, fished, Fish, Fisher > fish

FILTERLING
?

?

, ()など記号での分割、日本語の分かち書き化
N-gram、形態素解析

ストップワード(て、に、を、は、など)、HTMLタグの除去

SCOREING
?

順位付けを計算する

Luceneはこれらの機構も提供している
キーワード:REST
?

REST = REpresentational State Transfer
?

?
?
?
?

2000年にRoy Fielding氏が提唱した、分散システムにおいて複数の
ソフトウェアを連携させるのに適した設計原則の集合

「セッションなどの状態管理を行わない(やり取りされる情報
はそれ自体で完結して解釈することができる)」
「情報を操作する命令の体系が予め定義?共有されている」
「すべての情報は汎用的な構文で一意に識別される」
「情報の内部に、別の情報や(その情報の別の)状態へのリ
ンクを含めることができる」
キーワード:RESTful API
?

RESTful API
? RESTの考え方で、設計されたAPI
? HTTPプロトコルでのAPI通信

アクセスメソッド(PUT/GET/POST/DELETE)でデータ
に対する動作(Create / Read / Update / Delete)を指
定
? URLでデータを特定
? リンクとして他の情報を記述
?

? 例:
?

Twitter, Facebookなどの各種API
?

ログイン、アクセス制限でセッションを使うことが多いので、厳
密ではないが。。
キーワード:NoSQL
?

Not Only SQL
? データベースはSQLだけじゃないぜ。(的なのり)

?

C10K問題への対応
? クライアント1万台問題(client

10,000)
キーワード: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の一種であると考える向きもある
キーワード:NoSQL
?

タイプと実装
? Key Value Store
? Redis
? ...etc
? Column Oriented
? Cassandra
? ...etc
? Document Oriented
? MongoDB
? ...etc
? ElasticSearch(?)
OutLine
ElasticSearchとは
? さわってみる
? キーワード
? デモについて解説
? 情報源
?
デモについて解説
?

使用プラグイン
? elasticsearch-head
? elasticsearch-HQ
? elasticsearch-analysis-kuromoji
デモについて解説:
elasticsearch
?

本体
? Dockerで入れました。

?

使用方法
? デプロイ

docker pull reoring/docker-elasticsearch
docker run -p 9200:9200 reoring/dockerelasticsearch
? 今回は、nginxなどと動作するように調整
デモについて解説:
elasticsearch-head
?

管理インターフェイスを提供するプラグイン

?

使用方法
? プラグインインストール

./bin/plugin -i mobz/elasticsearch-head
? アクセス

http://localhost:9200/_plugin/head/
デモについて解説:

elasticsearch-HQ
?

管理インターフェイスを提供するプラグイン

?

使用方法
? プラグインインストール

./bin/plugin -i royrusso/elasticsearch-HQ
? アクセス

http://localhost:9200/_plugin/HQ/
デモについて解説:

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以下のデータのデフォルトの解析器として利用される
デモについて解説:
その他
?

入れたかったもの
? Kibanaやfluentdとの連動
? River系のプラグイン
? elasticsearch-river-mongo
? elasticsearch-river-rdbc
? elasticsearch-river-fluentd

まにあいませんでした。m(_ _)m
OutLine
ElasticSearchとは
? さわってみる
? キーワード
? デモについて解説
? 情報源
?
情報源
?

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
おわり
?

ご清聴ありがとうございます。

More Related Content

More from エンジニア勉強会 エスキュービズム (20)

Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
エンジニア勉強会 エスキュービズム
?
滨辞罢で何をやったか
滨辞罢で何をやったか滨辞罢で何をやったか
滨辞罢で何をやったか
エンジニア勉強会 エスキュービズム
?
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
?
顿辞肠办别谤を用いたマイクロサービスについて
顿辞肠办别谤を用いたマイクロサービスについて顿辞肠办别谤を用いたマイクロサービスについて
顿辞肠办别谤を用いたマイクロサービスについて
エンジニア勉強会 エスキュービズム
?
痴搁のコンテンツ
痴搁のコンテンツ痴搁のコンテンツ
痴搁のコンテンツ
エンジニア勉強会 エスキュービズム
?
础锄耻谤别で动いている机械学习のいろいろについて
础锄耻谤别で动いている机械学习のいろいろについて础锄耻谤别で动いている机械学习のいろいろについて
础锄耻谤别で动いている机械学习のいろいろについて
エンジニア勉強会 エスキュービズム
?
レイアウトについて
レイアウトについてレイアウトについて
レイアウトについて
エンジニア勉強会 エスキュービズム
?
アルゴリズムとデータ构造(初歩)
アルゴリズムとデータ构造(初歩)アルゴリズムとデータ构造(初歩)
アルゴリズムとデータ构造(初歩)
エンジニア勉強会 エスキュービズム
?
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
?
滨辞罢の滨を考えてみる话
滨辞罢の滨を考えてみる话滨辞罢の滨を考えてみる话
滨辞罢の滨を考えてみる话
エンジニア勉強会 エスキュービズム
?
础锄耻谤别の滨补补厂とかの话
础锄耻谤别の滨补补厂とかの话础锄耻谤别の滨补补厂とかの话
础锄耻谤别の滨补补厂とかの话
エンジニア勉強会 エスキュービズム
?
【エンジニア勉强会】品质ってなんなのさ
【エンジニア勉强会】品质ってなんなのさ【エンジニア勉强会】品质ってなんなのさ
【エンジニア勉强会】品质ってなんなのさ
エンジニア勉強会 エスキュービズム
?
【エンジニア勉强会】笔惭やってみた
【エンジニア勉强会】笔惭やってみた【エンジニア勉强会】笔惭やってみた
【エンジニア勉强会】笔惭やってみた
エンジニア勉強会 エスキュービズム
?
顿辞肠办别谤を社内で使うために
顿辞肠办别谤を社内で使うために顿辞肠办别谤を社内で使うために
顿辞肠办别谤を社内で使うために
エンジニア勉強会 エスキュービズム
?
骋辞言语オーバービュー201507
骋辞言语オーバービュー201507骋辞言语オーバービュー201507
骋辞言语オーバービュー201507
エンジニア勉強会 エスキュービズム
?
理想の奥贰叠开発
理想の奥贰叠开発理想の奥贰叠开発
理想の奥贰叠开発
エンジニア勉強会 エスキュービズム
?

Recently uploaded (8)

【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ssuserfcafd1
?
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
MaiKaneko4
?
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
?
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
?
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
?
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
Toyo University
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
?
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ダイアグラム思考冲驰耻尘别尘颈.驳谤辞飞冲読书シェア会2025冲3冲26.辫辫迟虫
ssuserfcafd1
?
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
闯补厂厂罢2025-顿5-1开発者手动の自动テスト导入によるバグ早期発见.辫诲蹿
MaiKaneko4
?
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
?
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
?
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
?
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
学会発表资料(2025/3/3):尝尝惭を利用した厂狈厂の投稿内容のインタラクティブマップ表示
Toyo University
?
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
?

Elastic searchとは_エンジニア勉強会20140212