DBFluteを用いて開発されている全文検索システムFess

6,180 views

Published on

DBFluteを利用している全文検索システムFessとクローラフレームワークS2Robotの説明です。S2Robot繋がりでElasticsearch River Web+Kibana3についても簡単に紹介しています。また、DBFlute Mavenプラグインについても説明しています。

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,180
On SlideShare
0
From Embeds
0
Number of Embeds
267
Actions
Shares
0
Downloads
19
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

DBFluteを用いて開発されている全文検索システムFess

  1. 1. DBFluteを用いて開発されている 全文検索システムFess DBFluteフェス2013
  2. 2. 自己紹介 名前: 菅谷信介 所属: N2SM, Inc. オープンソース活動:  Apache Portals (Jetspeed2など) コミッタ  Seasarプロジェクトコミッタ(S2Container, Teeda, SAStruts, DBFlute, S2Portlet, S2Robot..)  Fessプロジェクト運営 などなど・・・  Blog: http://www.chazine.com/  Twitter: https://twitter.com/shinsuke_sugaya/    DBFluteフェス2013
  3. 3. アジェンダ     Fess S2Robot DBFlute Mavenプラグイン まとめ DBFluteフェス2013
  4. 4. Fess DBFluteフェス2013
  5. 5. Fessとは  オープンソースの全文検索システム 一昔前だったらnamazuとか…      Solrを検索エンジンとして利用 簡単に利用できることを目指しています! 商用サポートも提供 (N2 Search) Apacheライセンス DBFluteを利用! DBFluteフェス2013
  6. 6. 検索分野での立ち位置 まず、検索業界的な話… 検索ライブラリ Luceneなど 検索サーバ Solr、Elasticsearch、groongaなど +クローラ Hyper Estraier、Namazu、Nutchなど 検索システム Fess、商用検索システム(GSAとか) クローラやUIを提供することで手軽な導入実現 DBFluteフェス2013
  7. 7. Fessの特徴            Webサイトのクロール ファイルシステム(共有フォルダ)のクロール データベースのクロール ブラウザによる管理画面 MS Office、PDF、圧縮ファイルもサポート スマホやガラケーで最適化された画面で検索 ログイン状態で検索結果の出し分け可能 登録したカテゴリごとに検索可能 ドリルダウン検索やジオ・サーチ 検索ログやクリックログで集計 サジェストや関連表示などにも対応 DBFluteフェス2013
  8. 8. アーキテクチャ すぐに利用できるようにオールインワンで提供 Fess SAStruts S2Robot Seasar2 DBFlute H2Database (MySQL) (Oracle) Solr アプリケーションサーバ (Tomcatなど) DBFluteを利用することで複数のDBに対応 DBFluteフェス2013
  9. 9. DBFluteをどこで利用か?      S2Robotのクロールデータ保存 Fessの設定DBなどのアクセス 管理画面をMavenプラグインで自動生成  自動生成したものを修正して対応 DBFluteにより複数の種類のDBサポート  H2Database, MySQL, Oracle FessとS2Robotで異なるDBFluteを利用  S2RobotはMaven Shadeプラグインで パッケージ名を変更している DBFluteフェス2013
  10. 10. 利用ケース1 お手軽パターン:何も考えずそのまま使う 利用者 Fessサーバ Fessサーバ構築ができればすぐに使える 独自の検索画面がある場合には向かない DBFluteフェス2013
  11. 11. 利用ケース2 独自検索画面パターン:JSPを修正して独自画面作成 Fessサーバ 利用者 独自の検索画面が利用できる JSPの変更が必要 DBFluteフェス2013
  12. 12. 利用ケース3 Ajaxパターン:既存のサイトにシームレスに統合 HTMLなどのコンテンツ返却 既存サーバ 利用者 JSONPで検索結果を返却 Fessサーバ 既存のサイトの一部のように表示が可能 DBFluteフェス2013
  13. 13. デモ 検索画面 管理画面 DBFluteフェス2013
  14. 14. Fessの今後    Fess 9でさらにパワーアップ  ジョブ管理、サジェスト、クラウド対応 などなど… いろんなところで使ってみてください!  複雑な要件や面倒なときは商用サポート を利用してみてくださいー ソースコードはgithubに移行しました DBFluteフェス2013
  15. 15. S2Robot DBFluteフェス2013
  16. 16. S2Robotとは          S2で利用可能なクローラフレームワーク ウェブやファイルシステムをクロール 指定した場所をマルチスレッドでクロール スレッド数、巡回取得数、巡回深さなど、 細かい設定可能 拡張可能な処理ルールでコンテンツ抽出 取得するコンテンツをフィルタ可能 クロールデータ保存にDBFluteを利用 s2robot.diconをincludeすれば利用可能 コンポーネント化されているので、必要に応 じて差し替えることで様々な拡張可能 DBFluteフェス2013
  17. 17. クローラの利用シーン   全文検索のインデックス作成  一番多い利用の仕方(だと思います) サイトの情報抽出  商品情報やニュース情報など、定期的に 情報を収集する DBFluteフェス2013
  18. 18. S2Robotの処理フロー execute() S2Robot 2 start() UrlFilter 3 Check the URL S2RobotThread S2RobotThread S2RobotThread 9 process() 4 6 S2RobotClient (Web,FS) ResponseData 7 Rule 8 ResponseProcessor 12 store() 11 10ResponseData AccessResult ResultData S2Robot DB DBFluteフェス2013 RuleManager Transformer 5 Web Web FS Web FS FS Get the Content
  19. 19. S2Robotの処理フロー execute() S2Robot 2 start() UrlFilter 3 Check the URL S2RobotThread S2RobotThread S2RobotThread 9 process() S2RobotClient コンテンツ取得 4 6 (Web,FS) ResponseData 7 Rule 8 ResponseProcessor 12 store() 11 DBFluteフェス2013 RuleManager 10ResponseData AccessResult ResultData 結果の保存 S2Robot DB 5 Transformer Web Web FS Web FS FS Get the Content
  20. 20. Elasticsearch Rivew Web S2Robotの流れでちょっと脱線的な話ですが…    指定したサイトをクロールして、対象コンテ ンツだけを抜き出して、定期的に情報収集を 行うElasticsearchのプラグイン Elasticsearchは分散リアルタイム検索& 分析エンジン Elasticsearh+Kibana3により収集したコン テンツをグラフィカルに表示できる https://github.com/codelibs/elasticsearch-river-web DBFluteフェス2013
  21. 21. コンテンツの抽出 S2Robotでページを クロール ページ内の取得 したい箇所を CSSクエリーで 指定する ex. div.title DBFluteフェス2013
  22. 22. Elasticsearch+Kibana3 検索条件を指定す ることで、結果を 分析に利用可能 結果をグラフ化 CSSクエリーで指 定して取得したコ ンテンツを一覧 DBFluteフェス2013
  23. 23. DBFlute Mavenプラグイン DBFluteフェス2013
  24. 24. DBFlute Mavenプラグイン       Maven 2/3用プラグイン DBFluteの.bat/.shを実行 DBFluteをダウンロード&展開 DBFluteのClientを生成 CRUDを自動生成 実行方法  mvn dbflute:download DBFluteフェス2013
  25. 25. 基本的な実行   Mavenプロジェクトを作ったら  pom.xmlにplugin設定を記述  mvn dbflute:download  mvn dbflute:create-client ソースコードの生成(DB変更時)  mvn dbflute:jdbc  mvn dbflute:generate  mvn dbflute:sql2entity DBFluteフェス2013
  26. 26. CRUD生成   SAStruts用のアクションクラスやJSP生成  mvn dbflute:generate-crud-tablemeta  mvn dbflute:generate-crud Bootstrapベースの画面生成 DBFluteフェス2013
  27. 27. まとめ DBFluteフェス2013
  28. 28. まとめ 今後もDBFluteを使っていきます! DBFluteフェス2013
  29. 29. Q&A DBFluteフェス2013

×