2010-04-19 9 views
5

Afternoon żuchwy,pomocą portu Solr i Lucene Zends razem

Po moich przygodach z Zend Lucene-search-i odkrywanie go nie jest wcale jego rewelacją podczas indeksowania dużych zbiorów danych, mam zwrócił się do Solr (dzięki za to Billowi Karwinowi :))

Mam indeksowanie bazy danych przez DB o wiele szybciej, co zajmuje niewiele ponad 8 minut, aby zindeksować tabelę o nieco ponad 1,7 miliona wierszy - z czego jestem bardzo zadowolony .

Jednakże, gdy przychodzę spróbować indeksu przy pomocy portu Zend, pojawia się następujący błąd;

Błąd krytyczny: nieprzechwycony wyjątek "Zend_Search_Lucene_Exception" z komunikatem "Nieobsługiwany format pliku segmentów" w /var/www/Zend/Search/Lucene.php:407 Ślad stosu: # 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 {główny} wrzucony do/var/www/Zend /Search/Lucene.php on line 407

Próbowałem wyszukiwać, ale nie mogę znaleźć niczego w tym problemie, wszyscy wydają się być w stanie zmusić ich do pracy?

Każda pomoc jak zawsze mile widziane :)

Dzięki

Tom

Odpowiedz

2

Potwierdziłem na moim komputerze, że indeks Lucene utworzony przez Solr nie może być odczytany przez Zend_Search_Lucene.

Zend_Search_Lucene zgłasza ten wyjątek, gdy wykryje format indeksu Lucene, który nie obsługuje. Patrząc na kod, Zend obsługuje obecnie formaty sprzed 2.1, 2.1 i 2.3.

Solr tworzy indeks w formacie FORMAT_HAS_PROX, który, o ile wiem, jest używany przez Lucene w wersji 2.9 i wyższej.

+0

Ahhh śmieci. Czy nie ma tam pracy? Zgaduję, że w najbliższym czasie nie będą też zaktualizowane kodu Zend. Wygląda na to, że będę naciskał na serwer Jetty/Tomcat. – Tom

+1

Wydaje mi się, że kiedy już to zrobisz, będziesz z tego zadowolony. Jedyną moją sugestią jest sprawdzenie, czy możesz zmusić Solr do utworzenia indeksu Lucene w formacie 2.3. Ale nie wiem, jak można to zrobić. –

1

Nigdy używać Zend przed, ale Użyłem Lucene/Solr.

Czy używasz tej samej wersji Lucene do indeksowania Solr i do portu Zend? Sprawdź, jaki plik jar Lucene jest używany dla każdego. Jeśli są różne, Solr może produkować indeks Lucene, który nie jest kompatybilny z portem Zend.

+0

Istnieje prawdopodobieństwo, że indeks Solr versuin jest bardziej zaawansowany niż Zend. Możesz rozważyć wykonanie dodatkowego kroku, używając Solr do wyszukiwania oraz komunikowania się z PHP za pośrednictwem interfejsu HTTP, takiego jak XML lub JSON. –

+0

Rozważaliśmy, że jedyny problem polega na tym, że nie jesteśmy pewni możliwości uruchomienia Jetty/Tomcat na naszym serwerze na żywo. Plan polegał na indeksowaniu bazy danych lokalnie, a następnie wysyłaniu jej co dwa dni. Zajrzę do wersji Lucene dla Zend i Solr i upewnię się, że śpiewają z tego samego hymnu. – Tom

Powiązane problemy