Совместное использование порта Solr и Zends Lucene - PullRequest
5 голосов
/ 19 апреля 2010

Дневные парни,

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

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

Однако, когда я пытаюсь выполнить поиск по индексу с портом 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 / Поиск / Lucene.php на линии 407

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

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

Спасибо,

1017 * Tom *

Ответы [ 2 ]

2 голосов
/ 20 апреля 2010

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

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

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

1 голос
/ 19 апреля 2010

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

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

...