使用Solr读取OpenGrok的数据库并失败并显示“找不到段*文件”

时间:2012-03-29 20:03:11

标签: solr lucene opengrok

我需要一种简单的方法来从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中找不到segment *文件.store.NativeFSLockFactory @ 3a329572:files:[] at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1103)

(等等,回溯大约是三个屏幕)

我试着把它指向内部数据而没有运气。结构如下所示:

的/ var / opengrok /数据/索引/ $ projname /段* 的/ var / opengrok /数据/拼写...

似乎Solr正在使用的是期望直接在索引目录中的段文件。

我查看是否有任何版本差异,但OpenGrok 0.11正在使用Lucene 3.0.2,我将Solr设置为LUCENE_30作为数据库版本。

任何指针都会非常感激,谷歌似乎无法帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

opengroks web界面可以使用任何格式良好的搜索查询(通过url)并回复xhtml结果,这些结果很容易解析,所以你可能会让它太复杂而无法在lucene内部进行攻击而不是使用提供的UI。