Во второй половине дня,
После моих приключений с Zend-Lucene-Search, и обнаружив, что это не все, что было сломано, когда вы индексируете большие массивы данных, я обратился к Солру (спасибо Биллу Карвину за это :))
У меня есть Solr, индексирующий db намного быстрее, и занимает чуть более 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 / Search / Lucene .php в строке 407
Я пытался найти поиск, но, похоже, не могу найти ничего об этой проблеме, все, похоже, могут заставить их работать?
Любая помощь, как всегда, очень ценится 🙂
Благодаря,
Том
Я подтвердил на своей машине, что индекс Lucene, созданный с помощью Solr, не может быть прочитан Zend_Search_Lucene.
Zend_Search_Lucene выдает это исключение, когда обнаруживает формат индекса Lucene, который он не поддерживает. Рассматривая код, Zend в настоящее время поддерживает форматы pre-2.1, 2.1 и 2.3.
Solr создает индекс в формате FORMAT_HAS_PROX
который, насколько я могу судить, используется Lucene 2.9 и выше.
Никогда не использовал Zend раньше, но я использовал Lucene / Solr.
Используете ли вы такую же версию Lucene как для индексации Solr, так и для Zend-порта? Проверьте, что для каждого файла используется файл Lucene. Если они разные, то Solr может создавать индекс Lucene, который несовместим с портом Zend.