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を...
ちなみにこの製品のコア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” />
※ ただの文字列配列フィールド。
専用スキーマを...
・参照許可・不許可フィールド
<field name=”sids_allowd” type=”string”
indexed=”true” stored=”true” multiValued=”true” />
<field name=”sids_...
参照許可・不許可フィールド
をフィルタクエリで検索
→ 検索結果は参照権限がある情報のみ
参照権限チェック
26
営業に見られたら怒られるレベルの
IM-ContentsSearch の紹介
以上
27
事例紹介
28
某食品会社様 曰く
社内の共有ファイル3TBを、
社内システム(intra-mart)
から全文検索したい。
こんなことやりました
29
当時、技術コンサル担当の私
「Solrという最新のごにょごにょ」
「エンタープライズでの利用は
かなり先駆的でごにょごにょ」
頑張って口説いた
30
情報システム部門の偉い人
「やりましょう!」
落とした
31
Solrで開発したかった!
もちろん有用なシステムです。
正直なところ
32
これが苦しい道のりの
始まりだった・・・。
しかし…
33
Solrの設定
34
Tomcat 6.x
cmecab-java-1.3
jcifs-1.3.14
jvm:-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
Upcoming SlideShare
Loading in...5
×

第4回Solr勉強会 SI向けパッケージ製品でのSolr利用と事例紹介

3,919

Published on

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,919
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
19
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

第4回Solr勉強会 SI向けパッケージ製品でのSolr利用と事例紹介

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

    Clipping is a handy way to collect important slides you want to go back to later.

×