2010-11-29 14 views
1

Hey Ich suche nach einer Möglichkeit, in unserer Anwendung in PHP und mit dem Zend Framework Suche zu tun. Das Problem, das ich beheben möchte, ist, dass einige Leute "Windows 95" und andere "Windows95" wieder andere "Win 95" oder "Win95" schreiben. Ich habe gelesen, dass es das Zend_Search_Lucene Modul gibt, aber ich weiß nicht, ob das der richtige Weg ist.Volltextsuche mit PHP und Zend Framework - Lucene?

Haben Sie Ideen? Es sollte in PHP geschrieben werden und sollte gut skalieren, so dass ein zentralisierter Speicher extrem nett wäre.

Antwort

0

Nun,

meine Antwort nichts mit Zend_Lucene zu tun haben, weil aus meiner Sicht,

ich die Art und Weise Lehre Liebe implementieren seine Volltextsuche sie nennen es Text Analyzers, werfen Sie einen Blick:

Standardmäßig verwendet Doctrine Doctrine_Search_Analyzer_Standard für den Text zu analysieren. Diese Klasse führt die folgenden Dinge:

Strips aus Stop-Schlüsselwörter (wie ‚und‘, ‚wenn‘ etc.) Wie viele häufig verwendete Wörter wie ‚und‘, ‚wenn‘ usw. haben keine Relevanz für die Suche, sie werden entfernt, um die Indexgröße in Ordnung zu halten. Macht alle Keywords in Kleinbuchstaben. Wenn Suche Wörter "Datenbank" und 'DataBase' sind gleich durch die Standard-Analysator, daher der Standard Analysator Kleinbuchstaben alle Schlüsselwörter. Ersetzt alle nicht alphanumerischen Zeichen durch Leerzeichen. Im normalen Text enthalten viele Schlüsselwörter nicht alphanumerische Zeichen nach ihnen, für Beispiel 'Datenbank.'. Der Standard-Analysator löscht diese aus, so dass 'Datenbank' mit 'Datenbank' übereinstimmt. Ersetzt alle Anführungszeichen mit leeren Saiten, so dass „O'Connor“ matches „oconnor“

Quelle http://www.doctrine-project.org/projects/orm/1.2/docs/manual/searching/en#introduction

Ich denke, Sie Ihre Abfrage, bevor es Lucene und vor der Erstellung Ihres Index vorbei vorbereiten

0

Zend_Search_Lucene als Modul des Zend Framework ist in PHP geschrieben, aber soweit ich weiß, korrigiert es Ihre Suchbegriffe nicht. Apache Lucene, die in Java geschrieben ist, verfügt über solche Rechtschreibprüfungen. Siehe "Did you mean?" feature in Lucene.net.

+3

'[Zitat benötigt]' Wenn ich mich nicht völlig irre, ist Zend_Search_Lucene eine komplette PHP-Implementierung von Lucene. Es ist wahrscheinlich eine * Übersetzung * der Java-Apache-Implementierung, aber es hängt überhaupt nicht von Apache Lucene ab, noch ruft es in irgendeiner Weise Java-Code auf. – deceze

+0

@deceze: Du hast Recht. Ich habe meine Antwort bearbeitet. – rik