<< 辞書のjarファイルからの分離 | top | 辞書分離のテストケース追加と残タスク >>

スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |

複数辞書の読み込み機能追加(仮)

先日、辞書のjarファイルからの分離についてパッチと記事を書きました。

IssueにあげていたパッチをRobertさんが見ていたらしく、次のようなコメントをもらいました。

Maybe if we change SenFactory.getInstance to use a ConcurrentHashMap then you can easily use multiple dictionaries at the same time?
「SenFactory.getInstanceメソッドでConcurrentHashMap使ったら複数辞書対応できるんじゃない?」(訳)
たしかに。。。
なんで思いつかなかったのだろう。。。

ということで、実装してみました。
パッチはこちら

使い方ですが、先日の記事と代わりはありません。
ただし、あった制限事項が次のようになります。
  • マルチコアの設定でsharedLibにlucene-gosenのjarを含まない
  • 同一コア内で異なるdictinaryDirの指定はできない

ソースの変更点ですが、ものすごく単純です。
dictionaryDirに指定された文字列をキー、その辞書ディレクトリを利用したSenFactoryのインスタンスを値に持つmapをSenFactory内に保持します。
あとは、SenFactoryのgetInstance(String dictionaryDir)メソッドで取得する際にmapに対応するインスタンスがあれば、そのインスタンスをなければ、dictionaryDirから辞書を読み込んでインスタンス生成してmapにキャッシュしつつ返すという実装に変えただけです。
ということで、次のようなIPADICとNAIST-JDIC for ChaSenを同時に使う設定も可能となります。
    <fieldType name="text_ja_ipadic" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.JapaneseTokenizerFactory" dictionaryDir="/tmp/lucene-gosen/dictionary/ipadic"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_ja_naist_chasen" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.JapaneseTokenizerFactory" dictionaryDir="/tmp/lucene-gosen/dictionary/naist-chasen"/>
      </analyzer>
    </fieldType>

あと、注意事項です。
普通に考えるとわかることですが、辞書を複数読み込めるようになったことで、読み込んだ複数の辞書をメモリに保持することになります。ですので、今までよりも多くのメモリを利用するので、Heapのサイズには注意が必要です。
例のごとく(ほんとよくない。。。)テストコードを書いていない状態のパッチをまずはアップしました。
テスト書かないと。。。次回はテストコードかきましたと言う報告をしたいな

あと、Robertさんのコメントの前に@shinobu_aokiさんからJapaneseTokenizerFactoryの設定では辞書のディレクトリを$SOLR_HOME/confからの相対パスで記述できるというパッチもいただいています。
この部分については先日と使い方が異なります。
(すみません、まだきちんとソースを見れてないです。。。)

johtani | lucene-gosen | 10:34 | comments(2) | trackbacks(0) | - | - |

スポンサーサイト

スポンサードリンク | - | 10:34 | - | - | - | - |
Comment
ご紹介ありがとうございます。
こちらこそパッチ投げっぱなしですみません。。

posted by shinobu_aoki ,2011/09/02 3:32 AM

すみません。。。公開するの忘れてました。
そしてまだ、パッチをきちんと見ていないw
これから目を通します!

posted by おーたに ,2011/09/07 10:43 AM










Trackback
URL:

09
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus) (JUGEMレビュー »)
大谷 純,阿部 慎一朗,大須賀 稔,北野 太郎,鈴木 教嗣,平賀 一昭
Solr 4系に対応した改訂版を出しました!興味ある方はぜひ。
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECENT COMMENT
  • ポモドーロ回してます。(ポモドーロテクニック入門読みました)
    おーたに (05/07)
  • Lucene 4.3.0のChangesにあるChanges in backwards compatibility policyが気になったので訳してみた。
    おーたに (04/26)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/04)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    m_nori (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    ho4kawa (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    まろか (09/03)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    おーたに (08/07)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    moco (08/07)
RECENT TRACKBACK
MOBILE
qrcode
OTHERS