我需要一种简单的方法来从 php 脚本中读取 OpenGrok 的数据库来进行一些奇怪的搜索(因为在 OpenGrok 本身的 Java 中这样做不是我的能力)。所以我决定使用 Solr 作为一种直接从另一种语言(可能是 PHP 或 C)查询 Lucene DB 的方法。
问题是当我将 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)
(等等,等等,回溯大约三个屏幕长)
我试图将它指向数据内部的某个地方,但没有运气。结构如下所示:
/var/opengrok/data/index/$projname/segment* /var/opengrok/data/spelling...
并且似乎 Solr 正在使用的任何内容都希望将段文件直接放在索引目录中。
我检查了是否存在任何版本差异,但 OpenGrok 0.11 使用的是 Lucene 3.0.2,并且我已将 Solr 设置为 LUCENE_30 作为数据库版本。
任何指针将不胜感激,谷歌似乎无法提供帮助。