MroongaとownCloudの良い関係 Groonga Meetup 2015

Preview:

Citation preview

1

Mroonga と ownCloud の良い関係

株式会社スタイルズ(旧:ビーグッド・テクノロジー)

Who am I ?

経歴 : システム運用 4 年・システム開発 7 年経験              近頃は ownCloud や他 OSS を眺める担当 あだ名 : マギー 好きな全文検索エンジン : Mroonga 趣味 : Splatoon (スプラトゥーン) ランク 29 ウデマエ B

 髙橋 ゆうき  1980 年 10 月 31 日生まれ

・東京都八王子生まれ多摩育ち・ ownCloud.jp の中の人・ Softlayer 本に寄稿してます→

ukitiyan

社名変更・事務所移転しました!

 会社名 株式会社スタイルズ 所在地 東京都千代田区神田小川町1丁目2番地      

       TEL   03-5244-4111 (代表)

       URL   http://www.stylez.co.jp/ 設  立 平成 15 年 12 月 5 日(創業:平成 5 年 11 月 17

日)

 代表者  代表取締役社長 梶原稔尚

 社員数  93 名(平成 27 年 11 月 1 日現在)

 資本金  3,000 万円

  IT ソリューションサービス提供  コンサルティング  システム開発・保守  インフラ設計・構築  システム運用・保守・管理  技術者派遣

JQA-QM7536

   ISO9001   JQA-QM7536 (システム開発)

  プライバシーマーク  21000092  労働者派遣事業(般  13-305944 )

会社概要

取得資格平成 23 年度 平成 24 年度 平成 25 年度 平成 26 年度

7.99 8.41 8.87 9.84 100.0% 105.3% 105.5% 110.9%

売上高推移(億円)

売上高 前年比

システム開発・保守30%

インフラ設計・構築10%運用・保守サービス

20%

システム運用・管理24%

コンサルティング1%

技術者派遣15%

売上高

OSS (オープンソースシステム)を積極的に活用、コストメリットのあるシステム提案、 IT 技術の有効活用によるベスト・ソリューションの提供。

事業内容

ITソリューション

サービス

システム開発

システム運用保守

インフラ構築

技術者派遣

会社方針

業績(株式会社ビーグッド・テクノロジーの業績)

ownCloud を展開するうえでMroonga にお世話になった

ストーリーをいくつか紹介します

(※技術的な話は、あまりありません)

まずは、 ownCloud の概要から

What is ownCloud Dropbox のようなファイル共有・同期環境を、社内 DC ・学内 DC ・クラウド等自身の環境に構築できるオープンソースサーバーソフトウェアです。( PHP )

IT MANAGED・ Storage and Servers・ User Provisioning

IT MANAGED・ Security・ Governance

8

企業 A

企業 B

個人FIREWALL

自身の環境に構築できるので、大切なデータやユーザを管理されたポリシー配下で運用できます。

ownCloud overview

9

つまり、シャドー IT 対策としても有効です。

ownCloud overview

ownCloud overview操作画面

ownCloud overviewオンラインストレージとしての様々な用途

データ保存

外部ストレージドラッグ & ドロップファイル共有

モバイル・PCクライアント

(WebDav)

外部ストレージ連携

ActiveDirectory連携

様々な文書を簡単に無制限に保存していくとあるニーズが生まれます

文書を簡単に探したい・・・

ストーリー その1それは、某企業の偉い人の一言から、、

ownCloud で全文検索できれば絶対いけるから、よろしくマギー!!

じゃ、僕が最近触ってる Solr とのコラボでいきますね!

んー、 Solr もいいけど、導入コスト高くなるから、別の案でよろしくー

あ、はい。。

可能性のあるソリューション

① 偉い人を説得

② Github からプラグインを探す

③ Mroonga と連携して全文検索

② Github からプラグインを探すSearchLucene というプラグインがマーケットプレイスに!

Zend Search Lucene で全文検索するプラグイン apps ディレクトリの下にソース配置してアクティベーションするだけ

でも、日本語が検索できない \ (^o^)/

③ Mroonga と連携して全文検索

簡単に実現できました!

ownCloud の一般的な構成例LAMP 環境で動作します。

MySQL との接続をサポート ( PostgreSQL も OK ) アドオン機構と多彩な APIがあるので、独自プラグインの

開発可能 (アドオンの作り方は以下参照)

App Server 1 DB ServerClient

http://www.slideshare.net/ukitiyan/owncloud-2014-phpconference-40255918

ownCloud と Mroonga を連携した構成DB を Mroonga に変えるだけ!(ほぼ)

ownCloud に保存されたドキュメントを Mroonga にインデックス化 ドキュメントからのテキスト抽出には Apache Tika を採用 全文検索の結果は標準で用意されている検索プロバイダに渡すだけ

App Server 1 DB ServerClient

定期的に新しいファイルをインデックス化

形態素解析エンジン:Mecab

①アップロード②インデックス

③検索

こんな感じになりました検索画面

検索部分の実装SQL> SELECT * FROM OC_SEARCH_GROONGA WHERE MATCH(`content`) AGAINST(? IN BOOLEAN MODE)

21

リリースから即引き合い ━キタ ( ゚∀゚ )━!!保険会社のコールセンター

グループウェアのファイル管理機能からの移行 コールセンターの応対資料の保管場所として ownCloud を採用 過去応対履歴の検索に全文検索したいというニーズ

本当ありがとうございます!

ストーリー その2それは、某企業の営業の一言から、、

お客さんが検索結果のスニペット表示を要望してるので、よろしく!( Google の検索結果で該当語が黄色くなるアレ)

あまり個別のお客さん用に独自の実装したくないかもー。。

いやいや、全文検索にスニペット必須だしょ?ちゃんと横展開するからー。

あ、はい。。

可能性のあるソリューション

① 営業を説得

② 独自にスニペット機能を実装

③ Mroonga のスニペット機能を利用

③ Mroonga のスニペット機能を利用

簡単に実現できました!

こんな感じになりました検索画面

検索部分の実装SQL> SELECT *, mroonga_snippet(content, 110, 1, 'utf8_general_ci', 1, 1, '...', '...', ?, '<label>', '</label>') FROM OC_SEARCH_GROONGA WHERE MATCH(`content`) AGAINST(? IN BOOLEAN MODE)

26

お客さんからありがたいお言葉!ownCloud側はフロントに注力

Mroongaが裏側すべてやってくれたので、 ownCloud は GUIの調整するだけ

スピーディーな対応が出来きたので、お客さんから褒められた!

本当ありがとうございます!

まとめDBがMySQL なら親和性高い!

元々 ownCloud は MySQL を DB として動作するプロダクトですので、 Mroonga との親和性も高かったです。

因みに ownCloud は PostgreSQL もいけるので、 PGroonga もありです。

ownCloud と、とても良い関係! オンラインストレージにアップロードしたコンテンツを日本語で

全文検索したいというニーズは多くあります。 Mroonga を利用することでスニペット含め簡単に実現できました。

その他 「Groonga で学ぶ全文検索」というセミナーで勉強できます。

自身も参加させてもらっています。 基本から応用まで幅広く勉強できます。

イカす!

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

30

新事務所の会議室をセミナー用にお貸しします! 収容人数:  30 名程度 利用料金: 無料

WI-FI    : 完備 音響   : もうすぐ設置完了

お気軽に Facebook に DM ください!ukitiyan

今なら先着 3セミナーにピザパーティセット(ピザとビール)を提供します!

Recommended