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

Post on 27-May-2015

3.833 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

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

top related