Парни во второй половине дня,
После моих приключений с Zend-Lucene-Search и обнаружения это не все его нахваливавший, чтобы быть при индексации больших наборов данных, я обратился к Solr (благодаря Bill Karwin для этого :))
У меня есть 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-> __ конструкция ('tmp/feeds_index') № 2 {основной} добавленный/var/www/Zend/Search/Lucene.php на строке 407
Я попытался иметь поиск вокруг, но, может казаться, ничего не нахожу об этой проблеме, все просто, кажется, могут заставить их работать?
Любая справка, как всегда очень ценится :)
Спасибо,
Tom
Я подтвердил на своей машине, что индекс Lucene, созданный с помощью Solr, не может быть прочитан Zend_Search_Lucene.
Zend_Search_Lucene выдает это исключение, когда обнаруживает формат индекса Lucene, который он не поддерживает. Судя по коду, Zend в настоящее время поддерживает форматы до 2.1, 2.1 и 2.3.
Solr создает индекс в формате FORMAT_HAS_PROX
, который, насколько я могу судить, используется Lucene 2.9 и выше.
Никогда раньше не использовал Zend, но я использовал Lucene / Solr.
Используете ли вы одну и ту же версию Lucene для индексации Solr и порта Zend? Проверьте, какой jar-файл Lucene используется для каждого. Если они разные, то Solr может создавать индекс Lucene, несовместимый с портом Zend.