Submit Search
Upload
Groongaの紹介と事例紹介
•
7 likes
•
6,148 views
Naoya Murakami
Follow
Groongaの紹介と事例紹介 全文検索エンジンGroongaユーザ勉強会@神戸
Read less
Read more
Report
Share
Report
Share
1 of 49
Download now
Download to read offline
Recommended
Groongaの今後への期待 全文検索エンジンGroongaユーザ勉強会@神戸
Groongaの今後への期待
Groongaの今後への期待
Naoya Murakami
61st Ruby/Rails勉強会@関西 LT 2014/05/31
Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531
Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531
Naoya Murakami
(スライドが見切れていたので再アップロード)
Java script info in english
Java script info in english
Takahiro Kawahara
201802 WordBench Nagoya
201802 WordBench Nagoya
201802 WordBench Nagoya
takashi ishihara
Nagoya PHP #12 LT資料
Java屋からPHPerになって1年くらい経った
Java屋からPHPerになって1年くらい経った
小川 昌吾
2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ
Masaru Gushiken
Rails 速度改善結果レポート
Rails 速度改善結果レポート
Masaru Gushiken
SendGrid Night in Osaka #2で「SendGrid + Redash」な構成のLTをしました。
SendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + Redash
Mitsuhiro Yamashita
Recommended
Groongaの今後への期待 全文検索エンジンGroongaユーザ勉強会@神戸
Groongaの今後への期待
Groongaの今後への期待
Naoya Murakami
61st Ruby/Rails勉強会@関西 LT 2014/05/31
Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531
Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531
Naoya Murakami
(スライドが見切れていたので再アップロード)
Java script info in english
Java script info in english
Takahiro Kawahara
201802 WordBench Nagoya
201802 WordBench Nagoya
201802 WordBench Nagoya
takashi ishihara
Nagoya PHP #12 LT資料
Java屋からPHPerになって1年くらい経った
Java屋からPHPerになって1年くらい経った
小川 昌吾
2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ
Masaru Gushiken
Rails 速度改善結果レポート
Rails 速度改善結果レポート
Masaru Gushiken
SendGrid Night in Osaka #2で「SendGrid + Redash」な構成のLTをしました。
SendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + Redash
Mitsuhiro Yamashita
Google trends to_irc
Google trends to_irc
rarere
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
新潟コンサルタント横田秀珠
MT LT 20100205
MT LT 20100205
Taku AMANO
Angular2がすごく良いので、Angular2が簡単であること。Reactとの比較。AngularJS1との比較。Angular次期バージョンについてを語ります。
今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js
Kohashi Daisuke
Redmineに全文検索エンジンGroongaサポートを追加する「Full Text Search」プラグインを紹介します。このプラグインを使えば数十万チケットがあるRedmineでも高速に目的の情報を見つけられます。高速になるという現状の話だけでなく、Redmine内のデータを有効活用するという今後の話もします。
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
Kouhei Sutou
Redmineの全文検索機能はバージョンが上がるたびに改良されていますが、まだ少し「弱い」機能です。長年活用しているRedmineにはたくさんの有用な情報が入っているので、すごく「使える」全文検索があると既存の情報を有効活用できます。Redmineの全文検索機能をすごく「使える」全文検索機能にする方法を紹介します。
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
Kouhei Sutou
_gaTracker 第4回ミーティングでのCinciいちしま泰樹の発表『not providedをどうとらえるか(Google検索のSSL接続と向き合う)』 のプレゼンテーション資料です。
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
Yasuki Ichishima
第二回SBM研究会での発表資料です。
ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力
Hiroumi Mitani
More Related Content
What's hot
Google trends to_irc
Google trends to_irc
rarere
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
新潟コンサルタント横田秀珠
MT LT 20100205
MT LT 20100205
Taku AMANO
Angular2がすごく良いので、Angular2が簡単であること。Reactとの比較。AngularJS1との比較。Angular次期バージョンについてを語ります。
今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js
Kohashi Daisuke
Redmineに全文検索エンジンGroongaサポートを追加する「Full Text Search」プラグインを紹介します。このプラグインを使えば数十万チケットがあるRedmineでも高速に目的の情報を見つけられます。高速になるという現状の話だけでなく、Redmine内のデータを有効活用するという今後の話もします。
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
Kouhei Sutou
Redmineの全文検索機能はバージョンが上がるたびに改良されていますが、まだ少し「弱い」機能です。長年活用しているRedmineにはたくさんの有用な情報が入っているので、すごく「使える」全文検索があると既存の情報を有効活用できます。Redmineの全文検索機能をすごく「使える」全文検索機能にする方法を紹介します。
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
Kouhei Sutou
_gaTracker 第4回ミーティングでのCinciいちしま泰樹の発表『not providedをどうとらえるか(Google検索のSSL接続と向き合う)』 のプレゼンテーション資料です。
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
Yasuki Ichishima
第二回SBM研究会での発表資料です。
ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力
Hiroumi Mitani
What's hot
(8)
Google trends to_irc
Google trends to_irc
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
MT LT 20100205
MT LT 20100205
今からでも遅くない! 2から始めるangular js
今からでも遅くない! 2から始めるangular js
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力
Groongaの紹介と事例紹介
1.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaの紹介 事例紹介 Naoya�(@naoa̲y) 全⽂検索エンジンGroonga勉強会@神⼾ 2014/06/27
2.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 今⽇の流れ みんなで自⼰紹介✓ Groongaについて紹介✓ 事例紹介✓ Groongaの今後への期待✓
3.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 自⼰紹介 Naoya�(@naoa̲y) 大学は情報系✓ 新卒で3年半ほど⾦融系のユーザSI でインフラSE ✓ 現在は3年半ほどITと無縁の仕事✓ Groonga/Mroonga暦は2年ちょっ と ✓ ✓
4.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 今⽇の流れ みんなで自⼰紹介✓ Groongaについて紹介✓ 事例紹介✓ Groongaの今後への期待✓
5.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 今⽇の流れ できるだけ具体的なコマンド等 を⾒せていきます ✓ せっかく⼩規模なので途中で遮 ってもいいのでどんどん質問し てください。 ✓
6.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga族の概要 ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
7.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��������������������������������������������������������������������������������������������
8.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaって? C⾔語で書かれた超⾼速な 全⽂検索ライブラリ/サーバ ✓ カラム指向のデータストア ⾼速な集計処理✓ ✓ 即時更新 新鮮な情報をすぐに検索可能に✓ ✓
9.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaって? 専用のRDBほど複雑な表現は 難しいがほぼRDBに近いイメ ージでテーブル設計ができる ✓ 転置索引を使った⾼速全⽂検索 ⽂字列をトークンに分割し、トーク ンが⼀致する⽂書IDを検索すること により大幅に演算量を減らす ✓ ✓
10.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaの全⽂検索の流れ ⼊⼒⽂を正規化 例:This�is�a�pen.�→�this�is�a� pen. ✓ ✓ ⼊⼒⽂をトークンに分割 例:今⽇は⾬�→�今⽇/は/⾬✓ ✓ 転置索引を更新/検索 分割したトークンとトークンの⽂書 IDと⽂書IDにおける出現位置情報を 記憶/検索 ✓ ✓
11.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaの全⽂検索の流れ Groongaではライブラリとし て利用してもこれらの作業を勝 ⼿にやってくれる ✓ たぶんApache�Luceneはひと つひとつやらないといけない (たぶん) ✓
12.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�CLI ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
13.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�CLI CLI�コマンドラインインターフ ェース 対話的にちょっとしたデータを確認 したいときやクエリの組み⽴てに便 利 ✓ 最近のNoSQL系はほとんどJSONイ ンターフェース ✓ 息を吐くようにスクリプトでJSON かける⼈なら無くてもいいだろうけ ど、そうではないのでCLIがあるの は凄い便利 ✓ ✓
14.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�HTTP ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
15.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�HTTP GroongaのHTTPはnginx組み 込みと独自実装の2つ ✓ nginxの豊富な機能を使う場合 はgroonga-httpd ✓ 単純に使うだけならgroonga コマンドをhttpモードで起動 サービスとして導⼊したい場合は groonga-server-httpをインストー ル ✓ ✓
16.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�GQTP ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
17.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groonga�GQTP コマンドと同じようにしてリモ ートのサーバと直接会話できる ✓ groongaコマンドをgqtpモー ド起動 サービスとして導⼊したい場合は groonga-server-gqtpをインスト ール ✓ ✓ 今後非推奨になる✓
18.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaライブラリ ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
19.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaライブラリ サーバを⽴てずにGroongaを 組み込んでアプリを作る場合は これ ✓ 結構難しい。が、コマンドを直 接投げたり受けたりするモード があるのでそれを使うだけなら 簡単 ✓ 難しいことしないならLucene よりはるかに簡単?かも ✓
20.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 C⾔語でのクエリAPI ��������������������������������������������������������������������� ���������������������������������������������������������������������������������� �������������������� ������������ ������������ ������������������������������ ����������� ���������������������� ����������������������������� ������������������������������������� �������������������������������������������������������������� ������������������������������������������������������� ������������������ ����������
21.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Mroonga ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
22.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Mroongaって? Groongaをライブラリとして 利用して全⽂検索機能が組み込 まれたMySQLのストレージエ ンジン ✓ SQLで簡単に全⽂検索が可能✓ MariaDBにもバンドル予 定 ? ✓
23.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Mroongaって? SQLでGroongaのコマンドよ りも柔軟なデータ操作ができる ※全⽂検索以外はMySQLの層でデ ータ操作するので同じ操作でも Groongaよりも遅くなることも ✓ ✓ 関数やツールなどMySQLの豊 富な資産が利用できる phpMyAdmin、レプリケーショ ン、バックアップ�etc ✓ ✓
24.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Rroonga ���������� ���� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ���� ��� ��� ��������������������������������������������������������������������������������������������
25.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Rroongaって? Rubyらしい記法でGroongaラ イブラリを利用できる ✓ gemで⼀発インストール ※Windows以外は数⼗分必要✓ ✓ RubyとGroongaが動けば使え る クロスプラットフォーム(Win/ Linux/Mac) ✓ ✓
26.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Rroongaって? ライブラリとして利用できるの で他にサーバが不要(≒SQLite) ✓ Rubyなのでメモリ管理や⽂字 列操作、データの操作が抜群に 楽 ✓ データベースAPIレベルが使え るので組み込みコマンド以上の 複雑な操作をRubyで実現可能 ✓
27.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 どれを使うべき? サーバ経由でGroongaを使っ て⾼速な全⽂検索をしたい Groonga�HTTP/GQTP�Mroonga✓ ✓ 既存のMySQLのツールや複雑 なSQLを扱いたい(速度差に注 意) Mroonga✓ ✓
28.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 どれを使うべき? Rubyで全⽂検索アプリケーシ ョンを作りたい Rroonga�✓ ✓ 他の⾔語で全⽂検索アプリケー ションを作りたい Groonga�GObject http://qiita.com/groonga/ items/71b145b37d77bd160bf2 ✓ ✓
29.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 どれを使うべき? サーバ経由もしくはクライアン トでGroongaの⼒を100%使 いたい Groonga✓ ✓ 超大規模なデータベースで全⽂ 検索したい Droonga、Mroonga�&�Spider✓ ✓
30.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaってどのくらい速 い? 検索性能は⽂書やトークナイズ の仕⽅にかなり左右される ✓ ⽇本語の⽂書でBigram(2⽂字 ごと)なら数⼗GiB超でも余裕 ✓ ⽇本語の⽂書でTrigram(3⽂字 ごと)なら100GiB超でも余裕 ✓ MeCabは単語間の検索性能に 偏りが出やすい ✓
31.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaってどのくらい速 い? 英語のみの⽂書でBigramにす ると10GiB、20GiBでかなり苦 しい ✓ 英語の⽂書をNgramにするな らTokenTrigramのSplitBy系 が欲しいところ ✓
32.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaの拡張性 以下をC⾔語のプラグインで拡 張することができる トークナイザ✓ ノーマライザ✓ コマンド✓ 関数✓ ✓ ただし情報は少なくC⾔語なの で単なる⽂字列操作も大変 ✓
33.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaの紹介 終わり✓ 質問があれば受け付ける✓ ここで休憩�&�雑談✓
34.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 今⽇の流れ みんなで自⼰紹介✓ Groongaについて紹介✓ 事例紹介✓ Groongaの今後への期待✓
35.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 事例紹介 特許の全⽂検索サービスを個⼈ で作りました。 http://patentfield.com✓ まだデザイン⾯とか使い⽅とか⼒を いれてないのでその辺は気にしない ✓ ✓
36.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 現状の公的サービス 700万件以上蓄積されているの に1000件以下に絞り込まない と表⽰できない ✓ ソートできない、検索結果から 絞込みできない ✓ 検索結果で番号とタイトルと出 願⼈以外表⽰できない ✓ DBがいくつも分かれていて検 索対象にできない項目が多数 ✓
37.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 システム概要 最大で1000万件、データサイ ズ400GiB超�トータルで1.5TB ぐらい ✓ カラム数は100ぐらい✓ Mroongaを利用✓ 複雑な絞込みやドリルダウンを 使いたいため全⽂検索は Groongaを利用 ✓
38.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 全⽂検索時 ���������� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ��� ������������������������
39.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 更新・メンテナンス時 ���������� キー管理 転置索引
データストア データベース機能 クエリー⾔語 ������� コマンド ��� ������ ������
40.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 Groongaで使った機能 全⽂検索✓ 重み付け✓ ドリルダウン✓ サジェスト✓ 近傍検索✓ 類似検索✓ スニペット✓
41.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 トークナイザによる検索性能 差 400GiBのデータベースを標準 のTokenBigramすると検索速 度がかなり劣化 ✓ TokenMecabを採用�しかし、 Mecabでは助詞等の頻出用語 を含むと性能が顕著に劣化 ✓ トークナイザプラグインで頻出 用語を除去することで回避 ✓
42.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 英語の複数形・過去形の取扱 英語でTokenBigramを使うと 単語ごとにトークナイズされる ✓ これでは複数形や過去形を検索 できない ✓ トークナイザプラグインでステ ミングを追加することで回避 ⼀定のルールで複数形や過去形っぽ い末尾を削除してくれる ✓ ✓
43.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 ノーマライザのカスタマイズ カタカナの⼩⽂字、大⽂字の扱 いがばらばら 例:フィルム⇔フイルム✓ ✓ 古いデータでは⻑⾳記号がハイ フンだったり 例:データベース⇔デ-タベ-ス✓ ✓ ノーマライザプラグインでこれ らを同⼀視 ✓
44.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 大量レコードのドリルダウン による性能劣化 全⽂検索結果で大量にレコード があるとドリルダウンはコスト が⾼い 100万件以上はドリルダウンしない ように組み込みselectコマンドをい じる ✓ C⾔語やRroongaでDB-APIを使う ことでも解消可能 ✓ ✓
45.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 複数カラム絞込みスニペット Groonga組み込みの snipet̲html関数はカラムを指 定するだけで便利 ✓ しかし、対象のカラム以外の検 索クエリも対象としてしまう ✓ ノーマライザの指定ができない✓ Mroongaと同等のスニペット 関数プラグインで作る ✓
46.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 感想 400GiB超のデータベースが1 台でさばけるとは思わなかった ✓ このサイズを1台で⾼速に検索 できるというのはすごく夢が広 がる ✓
47.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 感想 個⼈や少⼈数でも少し昔では考 えられなかった規模の全⽂検索 システムを作ることができる ✓ メーリングリストが親切なので プログラミング経験がほとんど なくても作れた ✓ 今後はRubyで全⽂検索デスク トップアプリを作りたい! ✓
48.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 事例紹介 終わり✓ 質問があれば受け付ける✓ ここで休憩�&�雑談✓
49.
Groongaの紹介事例紹介 Powered�by�Rabbit�2.1.2 お疲れ様 でした
Download now