OpenGrok の DB を php スクリプトから読み取って奇妙な検索を行う簡単な方法が必要です (OpenGrok 自体の Java でそれを行うことは私の能力ではありません)。そこで、別の言語 (おそらく PHP または C) から直接 Lucene DB にクエリを実行する方法として、Solr を使用することにしました。
問題は、Solr を /var/opengrok/data に向けると、次のように爆発することです。
java.lang.RuntimeException: org.apache.lucene.index.IndexNotFoundException: org.apache.lucene.store.MMapDirectory@/var/opengrok/data/index lockFactory=org.apache.lucene.store にセグメント* ファイルが見つかりません。 NativeFSLockFactory@3a329572: ファイル: [] at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1103)
(などなど、バックトレースは約3画面の長さです)
運が悪かったので、データ内のどこかにそれを向けようとしました。構造は次のようになります。
/var/opengrok/data/index/$projname/segment* /var/opengrok/data/spelling...
Solrが使用しているものは何でも、インデックスディレクトリに直接セグメントファイルを期待しているようです。
バージョンの不一致がないか確認しましたが、OpenGrok 0.11 は Lucene 3.0.2 を使用しており、Solr をデータベースのバージョンとして LUCENE_30 に設定しました。
どんなポインタでも大歓迎です.Googleはこれを手伝うことができなかったようです.