狠狠撸
Submit Search
CROSS 2015 全文検索群雄割拠
?
Download as PPTX, PDF
?
16 likes
?
4,586 views
Katsushi Yamashita
Follow
2015.1.29 CROSS 2015 @大さん橋ホール
Read less
Read more
1 of 75
Download now
More Related Content
CROSS 2015 全文検索群雄割拠
1.
全文検索エンジン 群雄割拠 ?あなたが使うべきはどれだ!? CROSS 2015 2015.1.29
2.
Agenda 1.セッション概要 2.スピーカ紹介 3.全文検索を駆け足でおさらい 4.各全文検索エンジンの紹介と 質疑&議論 5.全体質疑(時間があれば)
3.
Agenda 1.セッション概要← 2.スピーカ紹介 3.全文検索を駆け足でおさらい 4.各全文検索エンジンの紹介と 質疑&議論 5.全体質疑(時間があれば)
4.
本セッションの狙い
5.
例えば5, 6年前…
6.
「全文検索を使い队!」
7.
Apache Solr or Senna
8.
现在
9.
Apache Solr or Groonga(senna) or Elasticsearch or CloudSearch or …
10.
( ?ω?)???!?
11.
どれ使えばいいの? どこがどう違うの?
12.
はっきりさせようぜ!!
13.
そういう訳で、 各全文検索エンジンの 中の人や、ヘビーユーザに 集まってもらいました
14.
? Elasticsearch ? Elasticsearch
大谷さん ? Apache Solr ? クックパッド 兼山さん ? Amazon CloudSearch ? ChatWork 藤原さん ? Groonga(Mroonga,Rroonga,Nroonga) ? クリアコード 須藤さん
15.
それぞれの特徴を 語ってもらいます
16.
これでスッキリ! …するかも
17.
本セッションは 質疑、議論重視 (ガチ)
18.
バシバシ質問 おなしゃす (ガチ)
19.
尚、本セッションの スライドは近日中に すべてどこかに上がります ハッシュタグで告知します
20.
Agenda 1.セッション概要 2.スピーカ紹介← 3.全文検索を駆け足でおさらい 4.各全文検索エンジンの紹介と 質疑&議論 5.全体質疑(時間があれば)
21.
Copyright Elasticsearch 2014.Copying,publishing
and/or distributing without written permission is strictly prohibited Jun Ohtani ? Me, Jun Ohtani / Technical Adovocate lucene-gosenコ ミ ッ タ ー ElasticSearch Server日本語版の翻訳 elasticsearch-extended-analysisの開発 http://blog.johtani.info 好き な飲み物: プレ ミ アムモルツ ? Elasticsearch, founded in 2012 Products: Elasticsearch, Logstash, Kibana, Marvel, Shield Professional services: Support & development subscriptions
22.
cookpad 兼山元太 日々の仕事: ? 検索の満足度を上げる ?
検索のバッ ク エンド の開発 ? 辞書の作成/管理 ? レシピのメ タ データ の作成/管理 ? 他チームの検索関連のお手伝い 夢は世界中で使われる道具を作るこ と
25.
やまかつ (@yamakatu) ? 本名は秘密(うそ ?
ヤフー株式会社 ヤフオクカンパニー ? 検索、統計、機械学習しつつ、メイン は育児 ? ぶっちゃけ、Groonga族とCloudSearch はまともに使ったことない(キリ
26.
Agenda 1.セッション概要 2.スピーカ紹介 3.全文検索を駆け足でおさらい ← 4.各全文検索エンジンの紹介と 質疑&議論 5.全体質疑(時間があれば)
27.
この後がマニアックなので その前に駆け足でおさらい
28.
全文検索エンジン is 何?
29.
1.全文検索機能 2.周辺機能
30.
1.全文検索機能← 2.周辺機能
31.
全文検索機能の おさらい
32.
入力:キーワード 出力:そのキーワード を含むドキュメント
33.
How?
34.
転置インデックス Inverted index と形態素解析とN-Gram
35.
Why 転置インデックス?
36.
RDBの 一般的インデックス アルゴリズム B+Tree
37.
RDBの 一般的インデックス アルゴリズム B+Tree じゃムリ
38.
RDBでインデックスを 貼らずに Select (略) where
id = 4 1 4 9 10 11 12 13 15 16 20 25 full scan(ex. 11 times) ぜんぶで11件
39.
B+Tree (ex. 4 times) B+Treeでインデクシング Select
(略) where id = 4
40.
4 times <
11 times データ量が増加すると、 差は指数的に増加
41.
B+Tree? 速い? 最高?
42.
しかし、B+Treeで 全文検索はむりぽ
43.
Why?
44.
「くろす」で 全文検索したい場合 Select 略 where
text like “%くろす%”
45.
「くろす」で 全文検索したい場合 Select 略 where
text like “%くろす%” つまり部分一致
46.
B+Treeでテキストの部分一 致を実現しようとしても… 各文字列の中にキーワードが含まれている かどうかはfull scanしてみないとわからな い
47.
そこで 転置インデックス
48.
転置インデックス(簡略) 文書番号 文書 1 今年のCROSSは横浜 2
横浜行くの久しぶり 3 とりあえずモルツ もと文書
49.
転置インデックス(簡略) 文書番号 文書 1 今年のCROSSは横浜 2
横浜行くの久しぶり 3 とりあえずモルツ 単語 出現文書 横浜 1, 2 の 1, 2 CROSS 1 … … もと文書 転置 インデックス
50.
転置インデックス(簡略) 文書番号 文書 1 今年のCROSSは横浜 2
横浜行くの久しぶり 3 とりあえずモルツ 単語 出現文書 横浜 1, 2 の 1, 2 CROSS 1 … … もと文書 転置 インデックス 「CROSS」で検索
51.
転置インデックス(簡略) 文書番号 文書 1 今年のCROSSは横浜 2
横浜行くの久しぶり 3 とりあえずモルツ 単語 出現文書 横浜 1, 2 の 1, 2 CROSS 1 … … もと文書 転置 インデックス 「CROSS」で検索
52.
転置インデックス(簡略) 文書番号 文書 1 今年のCROSSは横浜 2
横浜行くの久しぶり 3 とりあえずモルツ 単語 出現文書 横浜 1, 2 の 1, 2 CROSS 1 … … もと文書 転置 インデックス 「CROSS」で検索 出現文書:1
53.
転置インデックスを用いて 全文検索を実現
54.
補足 1. 最近はRDBでも転置インデック スが実装されてます MySQL(innoDB, MyISAM): FullTextSearch PostgreSQL: GIST
Index, GIN Index Oracle:Oracle Text
55.
補足 2. B+treeでも 前方一致検であれば有効 select 略
where text like “くろす%”
56.
1.全文検索 2.周辺機能←
57.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
58.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
59.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
60.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
61.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
62.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
63.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
64.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション
65.
? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション 周辺機能のおさらい ノード1 シャード1台
66.
? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション 周辺機能のおさらい ノード1 シャード1台 ノード2 シャード2 2台 ノード1 シャード1 検索クエリへの応答速度向上 インデクシングの高速化
67.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション ノード1 シャード1台
68.
周辺機能のおさらい ? ハイライト ? スニペット ?
ソート ? ページング ? サジェスト ? もしかして ? 絞込(カテゴリ) ? シャーディング ? レプリケーション ノード1 シャード1台 ノード2 (slave) 2台 ノード1 (master) 検索負荷の分散 シャードシャード
69.
1.全文検索 2.周辺機能
70.
Agenda 1.セッション概要 2.スピーカ紹介 3.全文検索を駆け足でおさらい 4.各全文検索エンジンの紹介と 質疑&議論← 5.全体質疑(時間があれば)
71.
? Elasticsearch ? Elasticsearch
大谷さん ? Apache Solr ? クックパッド 兼山さん ? Amazon CloudSearch ? ChatWork 藤原さん ? Groonga(Mroonga,Rroonga,Nroonga) ? クリアコード 須藤さん
72.
大事なことなので 2回言います
73.
本セッションは 質疑、議論重視 (ガチ)
74.
バシバシ質問 おなしゃす (ガチ)
75.
Twitterでもハッシュタグ (#cross2015_c)付きで つぶやいていただければ 質問拾います (会場からの質問を優先しますので 時間切れしたら、ごめんなさい)
Download