Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Ereignisse, Vorschläge und Aktionen

Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon fubitch » Mi Jun 17, 2009 3:44 pm

Habe eben mal einen Intranet-Crawl über unser IT-Netzlaufwerk hier in der Firma gemacht und muss sagen bin echt begeistert :mrgreen:

Was jetzt noch fehlen würde wäre die Unterstützung für Visio-Dateien, wenn man dann z.B. nach einem Kundennamen sucht, dass man in den Suchergebnissen neben der Doku und Configfiles auch noch den Netzplan hat, in dem der Kundenname o.ä. vorkommt ;)

Weil jeder legt seine Dokus/Configfiles/Netzpläne nach einem anderem Schema ab oder benennt die anders und da muss man sich teilweise schon etwas durch die Ordner quälen, doch YaCy zeigt das gesuchte direkt an (zumindest nach dem ich die max. filesize hochgesetzt hab, war mit 256kb doch arg klein fürs Intranet) ;)

BTW: Kann man eigentlich zu der Intranet-Suche parallel die Ergebnisse einer Website anzeigen? Wir haben hier nämlich parallel noch ne Forensoftware am laufen ;)
Seit dem ich von Website auf Intranet gestellt hab wird momentan auch ausschließlich Intranet angezeigt und nix von meinem Wiki-Crawl der letzten 2 Tage ;)
Zuletzt geändert von fubitch am Do Jul 02, 2009 1:54 pm, insgesamt 1-mal geändert.
fubitch
 
Beiträge: 13
Registriert: Di Jun 16, 2009 9:05 am

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Low012 » Mi Jun 17, 2009 3:56 pm

Mit Apache POI sollte es auch möglich sein, den Text aus Visio-Dateien zu ertrahieren: http://poi.apache.org/apidocs/org/apach ... actor.html

Wir müssten nur überprüfen, ob die Version der Bibliothek, die mit YaCy kommt das auch schon unterstützt, ggf. updaten und einen entsprechenden Parser basteln. Wie das geht, ist irgendwo im Wiki beschrieben.

Da ich beruflich im Moment ziemlich viel um die Ohren habe, kann sich da gern jemand anderes dran versuchen. ;-)
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Low012 » Mo Jun 22, 2009 12:27 am

Ich habe heute einen entsprechenden Parser geschrieben, aber noch nicht getestet. Da ich zwei Bibliotheken in libx ausgetauschen musste, möchte ich noch ein bisschen warten, ehe ich die Änderungen einchecke. Aber es muss sich niemand mehr daran machen, auch einen Parser zu schreiben.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Orbiter » Mo Jun 22, 2009 1:03 am

supi!! ja, besser bis 0.91 mit Einchecken warten.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Low012 » Sa Jun 27, 2009 11:28 am

OK, der Visio-Parser ist jetzt ab Version 0.91 (rev. 6145) verfügbar. Er ist standardmäßig aktiviert. Allerdings sind viele Visio-Dateien größer als sie voreingestellten Höchstgrenze für zu crawlende Dateien von ~250kb. Dieser Wert muss also ggf. auf http://localhost:8080/Settings_p.html?page=crawler hochgesetzt werden, um auch wirklich Ergebnisse zu bekommen.

Edit: Der Parser muss (glaube ich) in http://localhost:8080/Settings_p.html?page=parser aktiviert werden. Bei einer Neuinstallation müsste er ohne zuätzliche Einstellungen aktiv sein.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Orbiter » Di Jun 30, 2009 1:52 pm

okidoki, ich habe den Parser aktiviert und in einem Intranet-Crawl auf visio-Dateien los gelassen. Jetzt habe ich folgende Fehlermeldung:
Code: Alles auswählen
E 2009/06/30 14:49:40 BLOCKINGTHREAD Runtime Error in serverInstantThread.job, thread 'java.lang.reflect.Method.parseDocument.28': null; target exception: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
   at org.textmining.extraction.word.WordExtractorFactory.initWordHeader(Unknown Source)
   at org.textmining.extraction.word.WordTextExtractorFactory.textExtractor(Unknown Source)
   at de.anomic.plasma.parser.doc.docParser.parse(docParser.java:67)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:655)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:558)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1666)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1635)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at de.anomic.server.serverInstantBlockingThread.job(serverInstantBlockingThread.java:87)
   at de.anomic.server.serverAbstractBlockingThread.run(serverAbstractBlockingThread.java:64)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Low012 » Do Jul 02, 2009 1:09 pm

Ich bin noch auf Dienstreise, aber wenn ich zurück bin, werde ich mir das mal anschauen. Funktionieren denn die Parser für Powerpoint und Excel?
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Orbiter » Do Jul 02, 2009 4:19 pm

ja, die funktionieren, und: der Visio-Parser funktioniert! Ich habe Visio-testdateien generiert und war damit erfolgreich. Nur der Doc- und SWF-Parser wirft Exceptions:
Code: Alles auswählen
E 2009/07/02 17:13:10 BLOCKINGTHREAD Runtime Error in serverInstantThread.job, thread 'java.lang.reflect.Method.parseDocument.25': null; target exception: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
   at org.textmining.extraction.word.WordExtractorFactory.initWordHeader(Unknown Source)
   at org.textmining.extraction.word.WordTextExtractorFactory.textExtractor(Unknown Source)
   at de.anomic.plasma.parser.doc.docParser.parse(docParser.java:67)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:655)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:558)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1666)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1635)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at de.anomic.server.serverInstantBlockingThread.job(serverInstantBlockingThread.java:87)
   at de.anomic.server.serverAbstractBlockingThread.run(serverAbstractBlockingThread.java:64)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)
D 2009/07/02 17:13:15 CRAWLER LOCALCRAWL[31, 0, 0, 0]: URL=http://localhost:9000/repository/umlaute_linux.swf, initiator=9jrgva4J-aPW, crawlOrder=false, depth=1, crawlDepth=1, must-match=http://localhost:9000/repository/.*, must-not-match=, permission=false
java.io.IOException: Unexpected end of input while reading a specified number of bytes
   at pt.tumba.parser.swf.InStream.read(InStream.java:138)
   at pt.tumba.parser.swf.SWFReader.readOneTag(SWFReader.java:121)
   at pt.tumba.parser.swf.SWFReader.readTags(SWFReader.java:96)
   at pt.tumba.parser.swf.SWFReader.readFile(SWFReader.java:86)
   at pt.tumba.parser.swf.SWF2HTML.convertSWFToHTML(SWF2HTML.java:301)
   at de.anomic.plasma.parser.swf.swfParser.parse(swfParser.java:84)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:655)
   at de.anomic.plasma.plasmaParser.parseSource(plasmaParser.java:558)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1666)
   at de.anomic.plasma.plasmaSwitchboard.parseDocument(plasmaSwitchboard.java:1635)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at de.anomic.server.serverInstantBlockingThread.job(serverInstantBlockingThread.java:87)
   at de.anomic.server.serverAbstractBlockingThread.run(serverAbstractBlockingThread.java:64)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)


und noch was, da du schon gerade bei den Parsern dran bist: eine bestimmte Menge von Dateien werden aufgrund ihres Mime-type nicht erkannt und/oder zugeordnet. hier eine Kopie aus dem indexing queue error log:
unbekannteMime.PNG
unbekannteMime.PNG (26.35 KiB) 1173-mal betrachtet

Kannst du da bitte auch mal gucken?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Vorschlag: Visio-Dateien (*.vsd) Inhalt crawlen

Beitragvon Low012 » Mo Jul 06, 2009 7:23 pm

Der SWF-Parser ist ja sowieso so eine Sache für sich... ;)

Bei den nicht erkannten Visio.-Dateien ist es so, dass ich bisher dem Visio-Parser nur gesagt habe, dass er Dateien mit der Endung .vsd parsen soll. .vst dürfte ein Template sein, richtig? Da weiß ich nicht, ob der Parser damit auch klar kommen würde, da muss ich mal recherchieren, ob die verwendete Library das mitmacht. .vdx und .vtx ist wahrscheinlich das neue, auf XML basierende Format von MS Office 2007. Die aktuelle Beta-Version 3.5 beta 6 der Apache POI-Library unterstützt wohl die neuen Formate (auch .pptx), aber ich weiß nicht wie da der genaue Stand ist. Ist halt eine Beta-version und ob da alles wie erwartet funktioniert... Ich habe daher beim Update der Library die letzte Final-Version genommen. Vielleicht war ich da ja etwas übervorsichtig.

.xlsx wird wohl auch von der aktuellen Final unterstützt. Da werde ich gleich mal ausprobieren, ob ich da nicht auf die Schnelle einen Parser basteln kann.

Ich habe überlegt, die Library für das Parsen von .doc durch Apache POI zu ersetzten, aber Apache POI unterstützt bisher nur Word 97 und das wohl auch nur rudimentär.

edit: Den Open-Document-Kram habe ich mir noch nicht angeschaut.

noch ein edit: .xlsx wird doch erst in der Beta-Version unterstützt. Wenn wir uns also entschließen, die Beta-Version zu nutzen, können wir einige neue Parser basteln, aber die könnten dann auch Probleme machen.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm


Zurück zu Mitmachen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste