第4回solr勉強会 si向けパッケージ製品でのsolr利用と事例紹介
TRANSCRIPT
SI向けパッケージ製品でのSolr利用 と 事例紹介
(株)NTTデータ イントラマート (籍)エンタープライズソリューション本部 (席)プロダクトディベロップメント本部
清 彰宏 / @seikun
1
ちょっとだけ会社紹介Solrを利用した製品の話SIでの事例と苦労話しめ
あじぇんだ
2
(株)NTTデータ イントラマートSI向け開発基盤パッケージ製品の「intra-mart」と、その上で動くアプリケーションの、 開発 & 販売 & 導入サポートなんかをやってご飯を食べてます。
ちょっとだけ会社紹介
3
以上
ちょっとだけ会社紹介
4
すみません、素敵なTシャツとか配れません。
すみません、パンフレットとかも正直需要がないと思い持ってきてません。
すみません、社長すみません。
会社紹介の謝辞
5
ちょっと製品紹介
6
intra-mart上で動作する、
IM-ContentsSearch(あいえむ-こんてんつさーち)
なる製品を販売しております。というか、intra-martをインストールすると標準で使えます。(Solrは別でセットアップ)
Solrを利用した製品の話
7
ちなみにこの製品のコアAPIは、「cmecab-java」の開発者で、「Apache Solr入門」の著者の1人の、
武田さん が作成したライブラリを使用しています。
Solrを利用した製品の話
8
その前に、intra-mart をちょっと紹介
9
・ユーザ管理系のマスタとAPI
・権限管理系のマスタとAPI(会社、組織、役職、グループ、ロール)
・メニュー&ポートレット管理・簡易バッチ機能・ワークフロー&BPMエンジン etc...
提供している機能
10
1. jdkをインストールして2. DBを用意して3. intra-martをインストールして4. もろもろの設定を済ませて5. intra-martを起動すると
セットアップ方法
11
こんな画面が出ます。
12
ちょっと自慢できるところ。
ちまたで流行りのServer Side JavaScript を、
割と以前(約12年前)から採用。
※ JavaScriptエンジンは昔iPlanet, 今Rhino
13
あと intra-mart 上で動くグループウェアとして、
Intranet Start Pack(通称:スタパ)
とかも提供しております。スケジュール・掲示板・会議室・ブログ・ 文書管理・WebMail・コミュニティ・住所録
14
営業に見られたら怒られるレベルの
intra-mart の紹介以上
15
IM-ContentsSearchの紹介
16
ワークフロースケジュールブログ掲示板文書管理 etc
IM-ContentsSearchって?
17
→ 全文検索コンテンツ内容
&添付ファイル
業務データのクローラ作成
IM-ContentsSearchって?
18
→ 全文検索コンテンツ内容
&添付ファイル
・グループウェア ・ワークフロー ・業務アプリ
を同時に全文検索。
コアは1つだけ
19
こんな検索画面です。
20
Solrの利用について
21
Solr 1.3 cmecab-java
利用しているモノ
22
・形態素解析フィールド<tokenizer
class=”xxx.StandardMeCabTokenizerFactory” charset=”utf-8”
/>
専用スキーマを設定
23
・コンテンツタイプフィールド<field name=”type” type=”string”
indexed=”true” stored=”true” multiValued=”true” />
※ ただの文字列配列フィールド。
専用スキーマを設定
24
・参照許可・不許可フィールド<field name=”sids_allowd” type=”string”
indexed=”true” stored=”true” multiValued=”true” />
<field name=”sids_denied” type=”string”indexed=”true” stored=”true” multiValued=”true” />
※ ただの(略)。
専用スキーマを設定
25
参照許可・不許可フィールド
をフィルタクエリで検索
→ 検索結果は参照権限がある情報のみ
参照権限チェック
26
営業に見られたら怒られるレベルの
IM-ContentsSearch の紹介以上
27
事例紹介
28
某食品会社様 曰く
社内の共有ファイル3TBを、社内システム(intra-mart)から全文検索したい。
こんなことやりました
29
当時、技術コンサル担当の私
「Solrという最新のごにょごにょ」
「エンタープライズでの利用はかなり先駆的でごにょごにょ」
頑張って口説いた
30
情報システム部門の偉い人
「やりましょう!」
落とした
31
Solrで開発したかった!もちろん有用なシステムです。
正直なところ
32
これが苦しい道のりの始まりだった・・・。
しかし…
33
Solrの設定
34
Tomcat 6.xcmecab-java-1.3jcifs-1.3.14jvm:-Xmx,-Xms 12G他はfessを参考にチューニング
基本的な設定など
35
お客様からの要望で、 定期的にipadicの ユーザ辞書を更新内容:品番・品名・特殊な略称
形態素解析
36
ActiveDirectoryとの権限情報連携
37
1. jcifsで接続し権限情報を取得2. intra-martのグループに専用ツリーを作成。
3.ADの権限をバッチで同期4.検索クエリに反映される
ActiveDirectory連携
38
クローラ
39
マルチスレッドなクローラマルチスレッドプログラミングが
初めてなので楽しかった。
独自でクローラを開発
40
内蔵h2dbによるクロールキュー管理
独自でクローラを開発
41
索引化対象ファイルの詳細な設定が可能
独自でクローラを開発
42
ちょっと自信作
43
エヘヘっ
受注したが人がいないため、結局ほぼ自分1人で作成。結果、納期パツパツでS2Robotなどの技術調査が出来ず。
SIだと良くある話(?)
独自で作った理由
44
ここまでは良かった
45
ここからはホントにあったネタ話
ふと疑問に思った私
「そうそう、データセンターのLANってGbitですよね?」PMさらっと
「いや、L2は100Mbit。」
ある日のPMとの会話
46
「でも関係ないじゃん。共有ディスクはデータセンターにない
し。」
PMこう続ける
47
私
「ほわっちゃ?」(注:What’s?のつもり)
しばし沈黙の後・・・。
48
「今回対象とする共有ファイルって、全国の各拠点にある
んだよ。」
PMさらにこう続ける
49
少し冷静を装った私
「それじゃデータセンターの外向きの帯域は?」
50
さらに沈黙の後・・・。
15Mbpsだよ
51
「・・・。」
52
某食品会社様 曰く
社内の共有ファイル3TBを、社内システム(intra-mart)から全文検索したい。
少し回想
53
社内の共有ファイル3TB
少し回想
54
3TB(さんてらばいと)
少し回想
55
3TB / 15Mbps= 1677722 (sec)
1677722 / (24 * 60 * 60)≒ 19.42 (day)
計算してみた。
56
「全ファイル索引化に、 帯域全部使い果たして、
20日ほど かかります(笑)。」
PMに相談
57
「・・・。」
58
第2回Solr勉強会直前のことでした
59
なんとかした
60
100MB以上のファイル
サイズでは全体の40%文書数では全体の 2%
対象ファイルの絞り込み
61
100MB以上のファイル
対象外!
対象ファイルの絞り込み
62
お客様のラップトップで本社に潜入してクロール!!
現地でのクローリング
63
お客様のラップトップで本社に潜入してクロール!!
1.2 / 1.8 TB
現地でのクローリング
64
600GB / 15Mbps= 327680 (sec)
327680 / (24 * 60 * 60)≒ 3.79 (day)
残りを計算してみた。
65
これなら初期移行できる!
66
無事初期移行を終えて、カットオーバーを迎えました。
結果
67
本番運用開始から5ヶ月経過
そろそろ検索結果について要求が出てくるかとビクビク
これから
68
事例紹介 以上
69
しめ
70
社内用語(商品名、品番、略称)があり辞書の拡張(形態素解析前提)が必要
SIにおけるSolr利用
71
ソリューション化しないと学習コストが高くなりがち。
SIにおけるSolr利用
72
様々な業務情報を1つのスキーマで利用したいシーンが多い(と思う)ので、
汎用的なスキーマ定義が必要になる。 例:dynamicFieldの多用など。
SIにおけるSolr利用
73
でも、求められる
スループットや応答時間は、検索サービスと比較すると低い。
SIにおけるSolr利用
74
最後に
75
IM-ContentsSearchを、
Solr 1.4.1に対応させる予定です。
製品のバージョンアップ
76
なので、次回予告
77
Solr1.3から1.4への移行~イントラマートの場合~
78
ご清聴ありがとう ございました。
79