php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-08-2006, 10:01
Skull77
 Newbie
Links : Onlinestatus : Skull77 ist offline
Registriert seit: Aug 2006
Beiträge: 10
Skull77 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Zend Framework

Hallo,

hab ein Problem (was auch sonst). Und zwar möchte ich die Volltextsuche des Zend Frameworks verwenden. Es gibt ja einige Tutorials für RSS Feeds. Das funktioniert auch soweit. Nu hab ich aber das Problem das ich auch andere Dokumente, wie z.B. Word, PDF usw indizieren muss.
Leider bekomme ich das aber nicht hin. Für RSS Feeds gibt es eine import Funktion. So etwas finde ich aber nicht für andere Dokumente.
Ich habe zwar die Volltextsuche für Zend_search_lucene schon gefunden, da ist die Indizirung allerdings in Java realisiert. Ich benötige sie aber in PHP. Gibt es überhaupt die Möglichkeit mittels der Zend_Search in php Dokumente zu indizieren, oder geht es garnicht?
Für Hilfe wäre ich wirklich dankbar, bin schon Tage am rumforsten und kann nichts finden!!

Danke für Antworten (auch gerne Links zum Thema, aber nicht die zur RSS indizierung, davon hab ich schon einige)!!!!

Gruß

Skull77
Mit Zitat antworten
  #2 (permalink)  
Alt 08-08-2006, 10:23
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Zend Framework

Du solltest dich lieber an die Zend-Mailingliste wenden (fw-general@lists.zend.com), ist zwar Englisch, aber da sind die Programmierer von dem ZF wenigstens auch ansässig.
Generell kann ich dir nur sagen, es ist alles noch nicht mal Version 1, wenn also was fehlt, bzw. du es nicht finden kannst, ist es wahrscheinlich, dass es noch nicht unterstützt wird (dafür reicht ja das angucken der Methoden)
Mit Zitat antworten
  #3 (permalink)  
Alt 08-08-2006, 12:02
Skull77
 Newbie
Links : Onlinestatus : Skull77 ist offline
Registriert seit: Aug 2006
Beiträge: 10
Skull77 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, hab jetzt mal versucht se anzuschreiben, hoffe die verstehen mein wirklich brillantes Englisch!!!

Falls einer die Suche schon mal ausprobiert hat, wäre ich natürlich trotzdem dankbar, wenn er mir etwas unter die Arme greifen könnte.

So halbwegs läuft es jetzt auch, bekomme aber komischerweise keine Suchergebnisse...

Hier mal mein Code:

PHP-Code:
/*Die Indizierung scheint zu funktionieren. Zumindest werden die 
entsprechenden Dateien erstellt und haben auch Inhalt.*/

    
public function indizAction()
        {
        
$index = new Zend_Search_Lucene('path/to/index'true);
        
        
$filepath 'path/to/document/document.doc';
        
$file fopen($filepath"r");
        
$contents fread ($filefilesize ($filepath));
        
fclose ($file);
        
        echo(
$contents);
        
        
        
$fileDate=date("d.m.Y",filemtime($filepath));
        echo(
$fileDate);
        
$author='Heinz Becker';
        
        
$doc = new Zend_Search_Lucene_Document();        
        
$doc->addField(Zend_Search_Lucene_Field::Text('path'$filepath));
        
$doc->addField(Zend_Search_Lucene_Field::Text('modified'$fileDate));
        
$doc->addField(Zend_Search_Lucene_Field::Keyword('author'$author));
        
$doc->addField(Zend_Search_Lucene_Field::Text('contents'$contents));
        
        
$index->addDocument($doc);
        
$index->commit();
        }

/*Die Suche ergibt keine übereinstimmung. Keine Ahnung woran 
das liegen könnte*/
    
    
public function searchAction()
    {                    
        
$index = new Zend_Search_Lucene('/path/to/index');
        
$query='dokumentenverwaltung';
        
        
$hits $index->find($query);
        
        foreach (
$hits as $hit) {
            
// gebe das Zend_Search_Lucene_Document Objekt für diesen Treffer zurück
            
echo $document $hit->getDocument();
        
            
// gebe ein Zend_Search_Lucene_Field Objekt vom Zend_Search_Lucene_Document zurück
            
echo $document->getField('path');
        
            
// gebe den Stringwert des Zend_Search_Lucene_Field Objekts zurück
            
echo $document->getFieldValue('path');
        }
        
    } 

Geändert von Skull77 (08-08-2006 um 14:48 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 08-08-2006, 14:49
Skull77
 Newbie
Links : Onlinestatus : Skull77 ist offline
Registriert seit: Aug 2006
Beiträge: 10
Skull77 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, soweit geht es jetzt. Scheint probleme mit dem Word doc zu haben . Mit ner normalen txt gehts scheinbar. Eigenartig das!!!
Mit Zitat antworten
  #5 (permalink)  
Alt 09-08-2006, 16:51
Skull77
 Newbie
Links : Onlinestatus : Skull77 ist offline
Registriert seit: Aug 2006
Beiträge: 10
Skull77 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Für den Fall das auch sonst mal jemand sich mit dem Zend Framework und im Speziellen mit Zend_Search beschäftigen muss, hier die Lösung zu meinem Problem:

Zend kommt übrigens nur mit ASCII zurecht!!! z.B. PDFs müssten konvertiert werden. Dazu unten mehr.

PHP-Code:
    public function indizAction()
        {
        
        
//indizieren von Dateien
        
if(file_exists('d:/search_Test'))
        {
            
$index = new Zend_Search_Lucene('d:/search_Test');
            echo(
'Index wird aktualisiert.<br><br>');
        }
        else
        {
            
$index = new Zend_Search_Lucene('d:/search_Test'true);
            echo(
'Neuer Index wurde erstellt.<br><br>');
        }
        
        
//um die Indizierung zu testen einfach mal drei Dateien genommen
        //information retrieval.txt und informa.txt sind gleich
        //dokument.pdf wurde mit XPDF zu dokument.txt konvertiert
        //informa.doc wurde mit antiword zu informa.txt konvertiert
        
$aFilepath = Array ('d:/suchdat/information retrieval.txt',
                            
'd:/suchdat/dokument.txt'
                            
'd:/suchdat/informa.txt');
        
        foreach(
$aFilepath as $filepath)
            {
            
$file fopen($filepath'r');
            
$contents fread ($filefilesize ($filepath));
            
fclose ($file);
            
            echo(
$contents);
            
            
$fileDate=date("d.m.Y",filemtime($filepath));
            
            
//echo($fileDate);
            
            //Autor des Dokumentes
            
$author='Heinz Becker';
            
            
//neues Dokument wird indiziert
            
$doc = new Zend_Search_Lucene_Document();
            
//Felder werden angelegt        
            
$doc->addField(Zend_Search_Lucene_Field::Text('path'$filepath));
            
$doc->addField(Zend_Search_Lucene_Field::Text('modified'$fileDate));
            
$doc->addField(Zend_Search_Lucene_Field::Keyword('author'$author));
            
$doc->addField(Zend_Search_Lucene_Field::Text('contents'$contents));
            
            
//Dokument wird $index hinzugefügt
            
$index->addDocument($doc);
            }    
        
//nu kommt alles in die Indexdateien
        //für jedes commit werden neue Dateien angelegt, darum erst alles in $index und 
        //zum Ende commiten.
        
$index->commit();
        
        echo 
$index->count()."<br><br> Documents indexed.\n";
        }
    
    public function 
searchAction()
    {                    
        
$index = new Zend_Search_Lucene('/search_Test');
        
        
//Suchwort
        //muss klein geschrieben werden.
        
$query='controller';
        
        
$hits $index->find($query);
        
        if(
$hits == NULL)
        {
            echo(
'Es konnten keine Übereinstimmungen gefunden werden.<br><br>');
        }
        
        foreach (
$hits as $hit) {
            echo 
$hit->score;
            echo 
"<br>" .$hit->path;
            echo 
"<br>" .$hit->modified;
            echo 
"<br>" .$hit->author;
            echo 
"<br><br>";
        }
        echo 
$index->count()." Documents indexed.\n";
        
    } 
Zur Konvertierung der MS Word Dokumente habe ich "antiword" und zur Konvertierung von PDFs habe ich XPDF verwendet.

Geändert von Skull77 (09-08-2006 um 17:27 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 22-02-2007, 15:05
Proggy
 Junior Member
Links : Onlinestatus : Proggy ist offline
Registriert seit: Oct 2003
Beiträge: 163
Proggy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke, endlich mal nen Snibbet, den man auch nachvollziehen kann.
Mit Zitat antworten
  #7 (permalink)  
Alt 16-10-2007, 13:01
deklarmart
 Junior Member
Links : Onlinestatus : deklarmart ist offline
Registriert seit: Sep 2002
Ort: # my_home.php - line 213 ;-)
Beiträge: 112
deklarmart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Skull77
Zend kommt übrigens nur mit ASCII zurecht!!! z.B. PDFs müssten konvertiert werden. Dazu unten mehr.
Ach ne... Sorry das ich den Thread erst jetzt lese, aber hast du dir noch nie eine DOC oder PDF Datei angeschaut?

Folgendes sieht dein Script wenn du die DOC Datei mit fopen() öffnest:
PHP-Code:
Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9    
œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4    ö
n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯_^—¼¡ÞZïQïBº0FX'Ü+
œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ß˜ß-G”,ê}çïé/÷ñ¿ÀHh 8ðmWp[àŸƒ¸
AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï¿@°
`lÁݧYψÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎъèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&
9‡Ä%ÆuÇMÄs 
__________________
GLORIA PERPETUA
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

myExplorer

explorer-ähnliche Darstellung von Verzeichnisinhalten. Ideal für Downloadordner. Möglichkeit Filter zu definieren um nur bestimmte Dateien/Ordner darzustellen. Sehr leicht einzubinden.

16.07.2019 bmitt | Kategorie: PHP/ File
WebAudio Player

Dieser Music-Player demonstriert, was mit der WebAudio-API so alles möglich ist. Er ist dazu gedacht, dass ihr euren Besuchern Musik auf der eigenen Homepage anbieten könnt.

16.07.2019 numaek | Kategorie: JAVASCRIPT/ sonstig
Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:38 Uhr.