Совместное использование портов Solr и Zends Lucene

Добрый день, ребята,

После моих приключений с Zend-Lucene-Search, когда я обнаружил, что не все так плохо при индексировании больших наборов данных, я обратился к Solr (спасибо Биллу Карвину за это :))

У меня теперь Solr индексирует базу данных намного быстрее: для индексации таблицы, содержащей чуть более 1,7 миллиона строк, требуется чуть более 8 минут, и я очень доволен.

Однако, когда я пытаюсь выполнить поиск по индексу с помощью порта Zend, я сталкиваюсь со следующей ошибкой;

Неустранимая ошибка: неперехваченное исключение Zend_Search_Lucene_Exception с сообщением «Формат файла неподдерживаемых сегментов» в /var/www/Zend/Search/Lucene.php:407 Трассировка стека: # 0 /var/www/Zend/Search/Lucene.php(555 ): Zend_Search_Lucene -> _ readSegmentsFile () # 1 /var/www/z_search.php(12): Zend_Search_Lucene -> __ construct ('tmp / feeds_index') # 2 {main} добавлен в / var / www / Zend / Search / Lucene .php в строке 407

Я пытался поискать, но не могу найти ничего об этой проблеме, кажется, каждый может заставить их работать?

Любая помощь, как всегда, очень ценится :)

Спасибо,

Том


person Tom    schedule 19.04.2010    source источник


Ответы (2)


Я подтвердил на своей машине, что индекс Lucene, созданный с помощью Solr, не может быть прочитан Zend_Search_Lucene.

Zend_Search_Lucene выдает это исключение, когда обнаруживает формат индекса Lucene, который он не поддерживает. Судя по коду, Zend в настоящее время поддерживает форматы до 2.1, 2.1 и 2.3.

Solr создает индекс в формате FORMAT_HAS_PROX, который, насколько я могу судить, используется Lucene 2.9 и выше.

person Bill Karwin    schedule 20.04.2010
comment
Ах, чушь. Полагаю, здесь нет никакой работы? Я предполагаю, что в ближайшее время они не будут выпускать обновленный код Zend. Похоже, я буду настаивать на том, что сервер Jetty / Tomcat. - person Tom; 21.04.2010
comment
Я думаю, что как только вы его запустите, вы обязательно станете более довольными. Единственное, что у меня есть, это попытаться посмотреть, можно ли заставить Solr создать индекс Lucene в формате 2.3. Но я не знаю, как это сделать. - person Bill Karwin; 21.04.2010

Никогда раньше не использовал Zend, но я использовал Lucene / Solr.

Используете ли вы одну и ту же версию Lucene как для индексации Solr, так и для порта Zend? Проверьте, какой jar-файл Lucene используется для каждого из них. Если они разные, то Solr может создавать индекс Lucene, несовместимый с портом Zend.

person bajafresh4life    schedule 19.04.2010
comment
Скорее всего, индекс версии Solr более продвинут, чем индекс Zend. Вы можете подумать о дополнительном шаге, используя Solr для поиска и взаимодействуя с PHP через интерфейс HTTP, такой как XML или JSON. - person Yuval F; 20.04.2010
comment
Мы учли это, единственная проблема заключалась в том, что мы не уверены в возможности запуска Jetty / Tomcat на нашем живом сервере. План состоял в том, чтобы индексировать базу данных локально, а затем загружать ее каждые x дней. Я изучу версии Lucene как для Zend, так и для Solr, и убедюсь, что они поют из одного листа гимнов. - person Tom; 20.04.2010