luceneutil - マニアックなツールのセットアップ

Posted by johtani on Tuesday, June 23, 2020

目次

LuceneのFSTの修正に関連して、Kuromojiのパフォーマンス問題が出ているようです。 この問題自体はLucene 8.6.0以降で直る予定のようなのです(Elasticsearchへの影響範囲についてはこれが参考になるかな?)。 で、これに関連して、ベンチマーク計らないとねという話が出ていて、 昔から、LuceneのMikeさんがやっているベンチマークのグラフ載せるのがいいよねという話になっていました。 どうも、これについては、Luceneの中にあるbenchmarkというプロジェクトではなく、MikeさんのGitHubリポジトリにあるプログラムで計測しているようです。

じゃあ、手元でこれどうやって動かすんだろう?ということでやってみたブログになります。 おそらく、99.99%の人は興味ないと思うのでスルーしていただくのがいいと思います。備忘録のために書いてます。

とりあえずgit clone

公開されているリポジトリはこちらです。

手順通りに?

とりあえず、READMEにセットアップなどのやり方があったんで追っていくことに。 とりあえず動くまでの手順は以下のとおりです。

  1. ディレクトリを決める
    • $LUCENE_BENCH_HOMEが起点になります。名前は何でもいいみたいです。
    • cd $LUCENE_BENCH_HOME
  2. リポジトリをクローン - git clone https://github.com/mikemccand/luceneutil.git utilです。
    • コレ自体は問題なし。
    • cd util
  3. セットアップスクリプトを実行 - python src/python/setup.py -download
    • ここがすごく時間かかります。6GBのファイルをゆっくりダウンロードしてきますので、一晩置いておきましょう(起きたら終わってた)
    • $LUCENE_BENCH_HOME/dataenwiki-20120502-lines-1k.txt.lzmawikimedium500.tasksいうファイルがダウンロードされている。
  4. ダウンロードした圧縮ファイルを展開 - unlzma enwiki-20120502-lines-1k.txt.lzma
    • macOSにlzmaのコマンド入ってるんですね。知らなかった。
    • 終わったらcd ../$LUCENE_BENCH_HOMEに戻っておく
  5. ベンチマーク対象となるLuceneを用意 - git clone https://github.com/apache/lucene-solr.git
    • READMEにはlucene_candidatelucene_baselineって名前でって書いてあったのですが、これだと、この後の実行フェーズでエラーになりました。
    • trunkpatchというディレクトリにそれぞれ変更しました。localrun.pyを実行したらこのディレクトリ名だったので(相変わらず、自分、行きあたりばったりな対応してるなぁ。。。)
    • とりあえず動くかどうかを確認したかったので、trunkpatchはどちらもリポジトリをcloneしたものになってます。動いたのを確認したら、タグを指定して比較したいブランチをチェックアウトする予定。
  6. trunkpatchをビルド - ant jar *
  7. localrun.pyを実行 - cd utilそして。。。
    • 5.で記述したディレクトリ以外に1箇所Pythonのコードを書き換えた。
    • src/python/benchUtil.py内部にhppc-0.8.1.jarのファイルの存在チェックをしているのだが、2020/06/23時点でのLuceneのリポジトリの依存関係だとhppc-0.8.2.jarになっており、ファイルが見つからないエラーが出たため、0.8.2に書き換えた。970行目付近。
    • 改めて実行したら成功した。

まだ途中

とりあえず、実行するところまではできましたが、結果の見方とかちゃんと調べないとなぁ。 いくつかローカルで対応したものについてはあとでGitHubにIssue立てとくべきだな。

と、動くのを確認したので、日本語周りの準備をしてみてるところです。

  • 終わったこと

    • 日本語のWikipediaのデータjawiki-20200620-pages-articles.xml.bz2をダウンロードして展開
  • 試している途中

    • WikipediaExtractorでXMLからデータを抽出 - cat ~/tmp/wiki/jawiki-20200620-pages-articles.xml | python -u src/python/WikipediaExtractor.py -b102400m -o extracted
      • これは手順が違うかも????
    • python src/python/wikiXMLToText.py ~/tmp/wiki/20200620-pages-articles.xml ./hoge.txt
      • これで、title日付本文が抜き出せそう?
      • この後にcombineWikiFiles.pyの実行かな?

って感じです。 誰得だろうこれ???


comments powered by Disqus