2012-04-14 7 views
0

Wir Apache hase verwenden Inhalte zu speichern (HTML, Bild, PDF-Dateien) wie folgt:jcr Sortier- und Paginierung basierend auf Name, Dateigröße, usw.

/folder1 (nt:unstructured) 
     /content1(nt:unstructured) 
      /file(nt:folder) 
       /test.html(nt:file) 
       /test.html-contents (nt:resource) 

Im UI wollen wir alle Inhalte angezeigt werden das kann nach Name, Dateigröße, Dateityp usw. sortiert werden. Um das zu erreichen, habe ich versucht, XPath Content-Knoten abzurufen.

  1. Ist es möglich, nach Knotennamen zu sortieren? Ich habe versucht, etwas, was wie

    "/ Element (*, zt: Base), um durch @name aufsteigend"

aber das funktioniert nicht. Es funktioniert auf andere Eigenschaften des Inhalts, aber nicht auf den Namen. 2. Ist es möglich, die Dateigröße zu sortieren? Da es sich bei Dateien um untergeordnete Knoten von Inhalten handelt, kann ich auf der Grundlage der Dateigröße nach Inhalten suchen? (Möglichkeit zur Abfrage von jcr: data) .length?)

Als Workaround kann ich den gesamten Inhalt über den Knoten-Iterator abrufen und In-Memory-Sortierung/Paginierung durchführen. Ich hatte gehofft, dass es einen besseren Weg dafür gibt.

Antwort

0

Die Sortierung nach Namen ist mit JCR Xpath Abfragen meines Wissens nicht möglich. Mit SQL wird es jedoch unterstützt. Dies hängt jedoch von der Version von Jackrabbit ab.

Mit SQL die Abfrage oben ist:

select * from nt:base order by jcr:name ASC 

auf die Länge einer Ressource Sortierung ist nicht so gut unterstützt. Möglicherweise möchten Sie eine zusätzliche Eigenschaft für Sortierzwecke auf dem Knoten festlegen. Sie können dies tun, wenn Sie den Upload zu Jackrabbit durchführen.

Je nach Anzahl der Knoten kann die Sortierung im Speicher zu einem großen Burdon werden.

+0

Ich habe versucht, mit dem obigen SQL, aber es gibt nicht die Knoten in sortierter Reihenfolge. Die Änderung der Reihenfolge von bis zu ASC DESC hat keine Auswirkung. – sfbay

+0

Welche JCR-Implementierung und Version verwenden Sie? Verwenden Sie JBoss Modeshape oder Apache Jackrabbit? – Jeroen

+0

Ich benutze Apache Jackrabbit. Vielen Dank. – sfbay