• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Lucene Search

flod

New member
Hallo ich beschäftige mich grad mit der Lucene Search.

Folgendes Ausgangslage:

Ich habe Adressen in einer MySQL Datenbank (Name,Strasse, Hausnummer, PLZ,Ort, ect)

Der User soll ähnlich wie bei google Maps, eine Adresse eingeben, zb

"Michelstrasse 5"

Das Problem ist das ich den String nicht getrennt bekomme um eben die Strasse und seperat die Hausnummer in der Datenbank zu suchen.

Daher habe ich mir mal die Lucene Search angeschaut. Leider hab ich aber noch keine Idee wie ich eine solche Suche mit Lucene realisieren soll.

Ein Beispiel der Lucene Search habe ich hinbekommen, das ist aber lediglich mit einem Key und einem Value.

Hat jemand ein paar Tipps für mich?
 

itsame69

New member
Das hat mit Lucene oder sonst einer Such-Engine wenig zu tun. Was du brauchst ist ein Textparser. Wenn die Syntax strikt vorgegeben werden kann, ist der Parser ein Dreizeiler. Wenn du (wie Google) jede mögliche Form von Eingabetext erkenne willst, wirds aufwändiger.

Wenn du das aber wirklich mit Lucene erledigen willt: bau ein "Dokument" doc:

PHP:
$doc = $name . " " . $strasse . " " . $hausnummer ...
Und wirf dieses Dokument in den Lucene-Index. Anschließend lässt du den vom User eingegeben Text durch die Engine laufen und drückst die Daumen.

lg
Christian
 

flod

New member
Danke,

bekomme folgenden Fehlermeldung:

PHP:
Notice:  iconv() [function.iconv]: Detected an illegal character in input string in C:\Programme\Apache   Group\Apache2\htdocs\library\Zend\Search\Lucene\Analysis\Analyzer\Common\Text.php on line 58
Muss ich noch was beachten wegen UTF8?
 

mahok

New member
Lucene ist was die Textkodierung angeht sehr anstrengend. Ich glaube inzwischen verwendet Zend_Search_Lucene standardmäßig UTF-8. Am besten ist es, du gibst beim Aufruf von addField() das encoding mit an. Außerdem hilft die Doku: http://framework.zend.com/manual/en/zend.search.lucene.charset.html

Falls alles nichts hilft (so wie bei mir), kannst du einfach Umlaute vor dem Einfügen der Felder ins Dokument und vor dem Parsen der Suche entsprechend in ae, usw. umwandeln. Ist nicht gerade die schönste Lösung, aber sie funktioniert. ;)
 
Oben