Использование Solr для чтения базы данных OpenGrok и ошибка «файл не найден» - PullRequest
0 голосов
/ 30 марта 2012

Мне нужен простой способ чтения базы данных OpenGrok из php-скрипта для выполнения некоторых странных поисков (так как выполнение этого в Java в самом OpenGrok не в моих силах). Поэтому я решил использовать Solr как способ запроса базы данных Lucene напрямую с другого языка (возможно, PHP или C).

Проблема в том, что когда я указываю 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: файлы: [] в org.apache.solr.core.SolrCore.getSearcher (SolrCore.java:1103)

(и т. Д. И т. Д., Обратная трассировка длиной около трех экранов)

Я пытался указать это где-то внутри данных без удачи. Структура выглядит так:

/ вар / opengrok / данные / индекс / $ PROJNAME / сегмент * /var/opengrok/data/spelling...

и похоже, что все, что использует Solr, ожидает файлы сегмента непосредственно в каталоге index.

Я проверил наличие расхождений в версиях, но OpenGrok 0.11 использует Lucene 3.0.2, и я установил для Solr значение LUCENE_30 в качестве версии базы данных.

Любые указатели будут высоко оценены, Google, похоже, не сможет помочь с этим.

1 Ответ

1 голос
/ 18 июля 2012

Веб-интерфейс opengroks может потреблять любой правильно сформированный поисковый запрос (через URL) и отвечать результатами xhtml, которые легко разбираются, поэтому вы, вероятно, делаете его слишком сложным для взлома внутри lucene, а не с помощью предоставленного пользовательского интерфейса. .

...