Speichern der Metadaten in repository Jackrabbit
kann jemand mir erklären, wie es weitergehen soll im folgenden Szenario ?
-
empfangen von Dokumenten (MS docs, ODS, PDF)
-
Dublic core metadata extraction via Apache Tika + content-Extraktion über jackrabbit-content-Extraktoren
-
mit Jackrabbit zum speichern von Dokumenten ("content") ins repository zusammen mit den zugehörigen Metadaten ?
-
abrufen von Dokumenten + Metadaten
Ich bin daran interessiert, Punkte 3 und 4 ...
DETAILS:
Die Anwendung ist die Verarbeitung von Dokumenten interaktiv (einige Analyse - Erkennung der Sprache, Wortanzahl etc. + sammeln Sie so viele details möglich - Dublin core + Parsen der Inhalte/events-handling), so dass es Ergebnisse, die von der Verarbeitung für den Anwender und dann den entpackten Inhalt und Metadaten extrahiert und benutzerdefinierte Metadaten) gespeichert in JCR repository
Dankbar hilft, danke
- Können Sie uns etwas mehr Kontext? Können Sie etwas konkreter auf deine Frage? Wo kommt die Liste der Artikel kommen aus?
- Ich bin nicht vertraut viel mit JCR und jackrabbit und ich irgendwie nicht finden, jede Bezugnahme auf, wie das gehandhabt wird.
- Die Dokumente werden hochgeladen, um meine Anwendung, die auf jedem Dokument hochladen das Dokument ist verarbeitet und persistiert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hochladen von Dateien ist im Grunde das gleiche für JCR 2.0, wie es für die JCR 1.0. Allerdings JCR 2.0 fügt ein paar zusätzliche built-in-property-Definitionen, die nützlich sind.
"Nt:file" Knoten-Typ repräsentieren soll eine Datei und hat zwei eingebaute Eigenschaft Definitionen in JCR 2.0 (beide werden automatisch erstellt, indem das repository, wenn Knoten erstellt werden):
und definiert ein einzelnes Kind mit dem Namen "jcr:content". Diese "jcr:content" Knoten kann jeder Knoten geben, aber im Allgemeinen alle Informationen über den Inhalt selbst gespeichert wird auf diesem untergeordneten Knoten. Die de-facto-standard ist die Verwendung des "nt:resource" - Knoten geben, die diese Eigenschaften definiert:
Beachten Sie, dass "jcr:mimeType" und "jcr:encoding" Hinzugefügt wurden, werden in JCR 2.0.
Insbesondere der Zweck der "jcr:mimeType Eigenschaft" war, genau das zu tun, was Sie für Fragen - Erfassung der "Art" des Inhalts. Jedoch, die "jcr:mimeType" und "jcr:encoding" property-Definitionen definiert werden können (indem die JCR-Implementierung) als geschützt (Bedeutung der JCR-Implementierung automatisch einstellt) - wenn dies der Fall ist, Sie würde nicht zugelassen werden, manuell festlegen dieser Eigenschaften. Ich glaube, dass Jackrabbit und ModeShape nicht behandeln diese als geschützt.
Hier ist ein code, der zeigt, wie das hochladen einer Datei in einem JCR-2.0-repository mithilfe dieser built-in-Knoten-Typen:
Und wenn die JCR-Implementierung nicht behandeln die "jcr:mimeType Eigenschaft" als geschützte (D. H., Jackrabbit und ModeShape), würden Sie haben zu setzen Sie diese Eigenschaft manuell:
Metadaten können sehr einfach gespeichert werden, auf die "nt:file" und "jcr:content-nodes", aber out-of-the-box "nt:file" und "nt:resource" node-Typen nicht zulassen, für zusätzliche Eigenschaften. Also, bevor Sie hinzufügen können andere Eigenschaften haben, müssen Sie zunächst ein mixin (oder mehrere Mixins in Verbindung), die eigenschaftsdefinitionen für die Arten von Eigenschaften, die Sie speichern möchten. Sie können auch definieren ein mixin, die erlauben würde, jeder Eigenschaft. Hier ist ein CND-Datei definieren, wie ein mixin:
Nach der Registrierung dieser Knoten-Typ-definition, die Sie dann verwenden können, diese auf die Knoten:
Könnte man auch definieren und verwenden ein mixin erlaubt, dass für jede Die Dublin-Core-element:
Alle diese Eigenschaften sind optional, und dieses mixin nicht ermöglicht, die Eigenschaften von Namen oder Typ. Ich habe auch nicht wirklich angesprochen mit diesem "dc:metadata' mixin die Tatsache, dass einige von diesen sind bereits vertreten mit der built-in-Eigenschaften (z.B., "jcr:createBy", "jcr:lastModifiedBy", "jcr:created", "jcr:lastModified", "jcr:mimeType"), und dass manche von Ihnen können mehr im Zusammenhang mit Inhalten, während andere eher mit der Datei.
Könnte man natürlich definieren, andere Mixins in Verbindung, die besser an Ihre Metadaten benötigt, mit der Vererbung, wo nötig. Aber seien Sie vorsichtig mit der Vererbung mit Mixins in Verbindung - da die JCR-ermöglicht es einem Knoten, um mehrere Mixins in Verbindung, ist es oft am besten, um Ihre design-Mixins in Verbindung eng begrenzten Gültigkeitsbereich und Facetten-orientierte (z.B. "ex:taggable", "ex:beschreibbar", etc.) und dann einfach die entsprechenden Mixins in Verbindung zu einem Knoten, wie gebraucht.
(Es ist auch möglich, aber wesentlich komplizierter, zum definieren einer mixin dafür sorgt, dass mehr Kinder unter den "nt:file" Knoten, und zum speichern von Metadaten gibt.)
Mixins in Verbindung sind fantastisch und geben eine enorme Menge an Flexibilität und Leistung für Ihre JCR-content.
Oh, und wenn Sie erstellt haben, alle Knoten, die Sie möchten, speichern Sie die Sitzung:
Ich bin ein wenig eingerostet mit JCR und ich habe noch nie verwendet, die 2.0 aber das sollte Ihnen den Einstieg.
Sehen diese link. Öffnen Sie den zweiten Kommentar.
Sie einfach speichern Sie die Datei in einem Knoten und fügen Sie zusätzliche Metadaten zu den Knoten. Hier ist, wie Sie zum speichern der Datei:
Wie Sie das speichern von meta-Daten ist bis zu Ihnen. Eine einfache Möglichkeit ist, einfach speichern Schlüssel-Wert-Paare:
Zum Lesen der Daten rufen Sie einfach
getProperty()
.Ich bin neu in Jackrabbit, arbeiten 2.4.2.
Für deine Lösung, Sie können überprüfen für den Typ mit einem Kern-java-Logik und setzen Fällen der Definition jeder Variante in Aktion.
Brauchen Sie sich nicht zu sorgen über Probleme mit dem speichern der Inhalte von verschiedenen .txt-oder .pdf als Ihre
Inhalte werden umgewandelt in binäre und gespeichert.
Hier ist eine kleine Probe, in der ich Sie hochgeladen und heruntergeladen pdf-Datei in/von jackrabbit repo.
Hoffe, das hilft