SlideShare a Scribd company logo
DBFluteを用いて開発されている
全文検索システムFess
DBFluteフェス2013
自己紹介
名前: 菅谷信介
所属: 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
アジェンダ





Fess
S2Robot
DBFlute Mavenプラグイン
まとめ

DBFluteフェス2013
Fess

DBFluteフェス2013
Fessとは


オープンソースの全文検索システム
一昔前だったらnamazuとか…








Solrを検索エンジンとして利用
簡単に利用できることを目指しています!
商用サポートも提供 (N2 Search)
Apacheライセンス
DBFluteを利用!

DBFluteフェス2013
検索分野での立ち位置
まず、検索業界的な話…

検索ライブラリ
Luceneなど
検索サーバ
Solr、Elasticsearch、groongaなど
+クローラ
Hyper Estraier、Namazu、Nutchなど
検索システム
Fess、商用検索システム(GSAとか)
クローラやUIを提供することで手軽な導入実現
DBFluteフェス2013
Fessの特徴















Webサイトのクロール
ファイルシステム(共有フォルダ)のクロール
データベースのクロール
ブラウザによる管理画面
MS Office、PDF、圧縮ファイルもサポート
スマホやガラケーで最適化された画面で検索
ログイン状態で検索結果の出し分け可能
登録したカテゴリごとに検索可能
ドリルダウン検索やジオ・サーチ
検索ログやクリックログで集計
サジェストや関連表示などにも対応

DBFluteフェス2013
アーキテクチャ
すぐに利用できるようにオールインワンで提供
Fess
SAStruts

S2Robot

Seasar2

DBFlute
H2Database
(MySQL)
(Oracle)

Solr

アプリケーションサーバ
(Tomcatなど)

DBFluteを利用することで複数のDBに対応
DBFluteフェス2013
DBFluteをどこで利用か?






S2Robotのクロールデータ保存
Fessの設定DBなどのアクセス
管理画面をMavenプラグインで自動生成
 自動生成したものを修正して対応
DBFluteにより複数の種類のDBサポート
 H2Database, MySQL, Oracle
FessとS2Robotで異なるDBFluteを利用
 S2RobotはMaven Shadeプラグインで
パッケージ名を変更している

DBFluteフェス2013
利用ケース1
お手軽パターン:何も考えずそのまま使う

利用者

Fessサーバ

Fessサーバ構築ができればすぐに使える
独自の検索画面がある場合には向かない
DBFluteフェス2013
利用ケース2
独自検索画面パターン:JSPを修正して独自画面作成

Fessサーバ

利用者

独自の検索画面が利用できる
JSPの変更が必要
DBFluteフェス2013
利用ケース3
Ajaxパターン:既存のサイトにシームレスに統合
HTMLなどのコンテンツ返却

既存サーバ
利用者
JSONPで検索結果を返却

Fessサーバ

既存のサイトの一部のように表示が可能
DBFluteフェス2013
デモ
検索画面
管理画面

DBFluteフェス2013
Fessの今後






Fess 9でさらにパワーアップ
 ジョブ管理、サジェスト、クラウド対応
などなど…
いろんなところで使ってみてください!
 複雑な要件や面倒なときは商用サポート
を利用してみてくださいー
ソースコードはgithubに移行しました

DBFluteフェス2013
S2Robot

DBFluteフェス2013
S2Robotとは












S2で利用可能なクローラフレームワーク
ウェブやファイルシステムをクロール
指定した場所をマルチスレッドでクロール
スレッド数、巡回取得数、巡回深さなど、
細かい設定可能
拡張可能な処理ルールでコンテンツ抽出
取得するコンテンツをフィルタ可能
クロールデータ保存にDBFluteを利用
s2robot.diconをincludeすれば利用可能
コンポーネント化されているので、必要に応
じて差し替えることで様々な拡張可能

DBFluteフェス2013
クローラの利用シーン



全文検索のインデックス作成
 一番多い利用の仕方(だと思います)
サイトの情報抽出
 商品情報やニュース情報など、定期的に
情報を収集する

DBFluteフェス2013
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
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
Elasticsearch Rivew Web
S2Robotの流れでちょっと脱線的な話ですが…






指定したサイトをクロールして、対象コンテ
ンツだけを抜き出して、定期的に情報収集を
行うElasticsearchのプラグイン
Elasticsearchは分散リアルタイム検索&
分析エンジン
Elasticsearh+Kibana3により収集したコン
テンツをグラフィカルに表示できる
https://github.com/codelibs/elasticsearch-river-web

DBFluteフェス2013
コンテンツの抽出
S2Robotでページを
クロール

ページ内の取得
したい箇所を
CSSクエリーで
指定する
ex. div.title

DBFluteフェス2013
Elasticsearch+Kibana3
検索条件を指定す
ることで、結果を
分析に利用可能

結果をグラフ化

CSSクエリーで指
定して取得したコ
ンテンツを一覧

DBFluteフェス2013
DBFlute Mavenプラグイン

DBFluteフェス2013
DBFlute Mavenプラグイン









Maven 2/3用プラグイン
DBFluteの.bat/.shを実行
DBFluteをダウンロード&展開
DBFluteのClientを生成
CRUDを自動生成
実行方法
 mvn dbflute:download

DBFluteフェス2013
基本的な実行




Mavenプロジェクトを作ったら
 pom.xmlにplugin設定を記述
 mvn dbflute:download
 mvn dbflute:create-client
ソースコードの生成(DB変更時)
 mvn dbflute:jdbc
 mvn dbflute:generate
 mvn dbflute:sql2entity

DBFluteフェス2013
CRUD生成




SAStruts用のアクションクラスやJSP生成
 mvn dbflute:generate-crud-tablemeta
 mvn dbflute:generate-crud
Bootstrapベースの画面生成

DBFluteフェス2013
まとめ

DBFluteフェス2013
まとめ

今後もDBFluteを使っていきます!

DBFluteフェス2013
Q&A

DBFluteフェス2013

More Related Content

PDF
Solrベースの全文検索サーバ Fess
PDF
オフィスに1台!全文検索Fess
PDF
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
PDF
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
PDF
elasticsearchプラグイン入門
PDF
Elasticsearchベースの全文検索システムFess
PDF
Sc2009autumn s2robot
PDF
DBFlute Mavenプラグインを用いてCRUD作成
Solrベースの全文検索サーバ Fess
オフィスに1台!全文検索Fess
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
elasticsearchプラグイン入門
Elasticsearchベースの全文検索システムFess
Sc2009autumn s2robot
DBFlute Mavenプラグインを用いてCRUD作成

What's hot (20)

PDF
SolrとElasticsearchを比べてみよう
PPT
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
PDF
はじめての検索エンジン&Solr 第13回Solr勉強会
PDF
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
PDF
Fess/Elasticsearchを使った業務で使える?全文検索への道
PPTX
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
PDF
Elasticsearchプラグインの作り方
PDF
Elasticsearch Authプラグインでアクセスコントロール
PPTX
solr勉強会資料
PDF
社内ドキュメント検索システム構築のノウハウ
PDF
ElasticsearchとTasteプラグインで作るレコメンドシステム
PDF
hs_spider_hs_something_20110906
PPTX
Apache Solr 入門
PDF
Elasticsearch at CrowdWorks
PDF
Elasticsearchで作る形態素解析サーバ
PDF
Spiderストレージエンジンのご紹介
PDF
AlfrescoとSolr(後編)
PDF
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
PDF
いろいろ考えると日本語の全文検索もMySQLがいいね!
PPTX
類義語検索と類義語ハイライト
SolrとElasticsearchを比べてみよう
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
はじめての検索エンジン&Solr 第13回Solr勉強会
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
Fess/Elasticsearchを使った業務で使える?全文検索への道
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Elasticsearchプラグインの作り方
Elasticsearch Authプラグインでアクセスコントロール
solr勉強会資料
社内ドキュメント検索システム構築のノウハウ
ElasticsearchとTasteプラグインで作るレコメンドシステム
hs_spider_hs_something_20110906
Apache Solr 入門
Elasticsearch at CrowdWorks
Elasticsearchで作る形態素解析サーバ
Spiderストレージエンジンのご紹介
AlfrescoとSolr(後編)
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
いろいろ考えると日本語の全文検索もMySQLがいいね!
類義語検索と類義語ハイライト
Ad

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