2010-04-19 8 views
5

Nachmittag Chaps,Mit Solr und Lucene Zends Port zusammen

Nach meinem Abenteuer mit Zend-Lucene-Suche, und es zu entdecken ist die, dass sie nicht alle geknackt, wenn große Datensätze indizieren, ich Solr gedreht haben (Danke an Bill Karwin dafür :))

Ich habe Solr Indizierung der db weit viel schneller jetzt, dauert etwas mehr als 8 Minuten, um eine Tabelle von knapp über 1,7 Millionen Zeilen zu indexieren - was ich sehr zufrieden bin .

Wenn ich jedoch versuche, den Index mit dem Zend-Port zu suchen, laufe ich in den folgenden Fehler;

Fatal error: abgefangene Ausnahme 'Zend_Search_Lucene_Exception' mit der Meldung 'Nicht unterstützte Segmente Dateiformat' in /var/www/Zend/Search/Lucene.php:407 Stapelüberwachung: # 0/var/www/Zend/Suchen/Lucene .php (555): Zend_Search_Lucene -> _readSegmentsFile() # 1 /var/www/z_search.php(12): Zend_Search_Lucene -> __ Konstrukt ('tmp/feeds_index') # 2 {main} geworfen in/var/www/Zend /Suche/Lucene.php on line 407

Ich habe versucht, eine Suche herum zu haben, aber kann anscheinend nichts über dieses Problem finden, jeder scheint nur fähig zu sein, sie zur Arbeit zu bringen?

Jede wie immer Hilfe sehr geschätzt :)

Danke,

Tom

Antwort

2

Ich habe auf meinem Rechner bestätigt, dass ein durch Solr erstellter Lucene-Index nicht von Zend_Search_Lucene gelesen werden kann.

Zend_Search_Lucene löst diese Ausnahme aus, wenn ein Lucene-Indexformat erkannt wird, das nicht unterstützt wird. Mit Blick auf den Code unterstützt Zend derzeit Formate vor 2.1, 2.1 und 2.3.

Solr erstellt einen Index im Format FORMAT_HAS_PROX, die soweit ich von Lucene verwendet wird 2.9 und höher berichten.

+0

Ahhh Quatsch. Gibt es keine Arbeit, nehme ich an? Ich schätze mal, dass sie auch bald keinen aktualisierten Zend-Code mehr haben werden. Sieht so aus, als würde ich auf diesen Jetty/Tomcat Server drängen. – Tom

+1

Ich denke, wenn man es zum Laufen bringt, sind Sie verpflichtet, damit glücklicher sein. Der einzige andere Vorschlag, den ich habe, ist, zu versuchen, um zu sehen, ob Sie Solr zwingen können, den Lucene-Index in 2.3-Format zu erstellen. Aber ich weiß nicht, wie man das machen könnte. –

1

Noch nie Zend verwendet, aber ich habe Lucene/Solr verwendet.

Verwenden Sie dieselbe Version von Lucene für die Solr-Indizierung und den Zend-Port? Überprüfen Sie, welche Lucene-JAR-Datei für jede Datei verwendet wird. Wenn sie unterschiedlich sind, produziert Solr möglicherweise einen Lucene-Index, der nicht mit dem Zend-Port kompatibel ist.

+0

Wahrscheinlich ist Solrs Index versuin fortgeschrittener als Zends. Sie sollten einen zusätzlichen Schritt in Betracht ziehen, Solr auch für die Suche verwenden und mit PHP über eine HTTP-Schnittstelle wie XML oder JSON kommunizieren. –

+0

Wir hatten in Betracht gezogen, dass das einzige Problem ist, dass wir über die Möglichkeiten des Laufes Jetty/Tomcat auf unserem Live-Server nicht sicher sind. Der Plan war, die Datenbank lokal zu indizieren und dann alle x Tage hochzuladen. Ich werde sowohl für Zend als auch für Solr in die Lucene-Versionen schauen und sicherstellen, dass sie aus derselben Hymne singen. – Tom

Verwandte Themen