Anonymous
Not applicable

FS 5.0: Suchsyntax für Medium unterhalb spezifischem Ordner

Hallo Community,

ich bin auf der Suche nach der Suchsyntax der globalen FirstSpirit-Suche für folgenden Anwendungsfall:

Gefunden werden sollen alle Medien mit einem bestimmten Wort in Displayname, UID oder Description unterhalb eines bestimmten Ordners des Medienrepositories.

Der erste Teil ist bereits gelöst, das Problem ist der spezifische Vaterknoten (das Medium darf in beliebiger Tiefe darunter liegen). Die API der QueryAgent-Klasse hilft hier leider ebenfalls wenig weiter, da keines der Beispiele in die Richtung geht.

Viele Grüße,

Nils

0 Kudos
7 Replies
Lopes
I'm new here

Hallo Nils,

nur kurz zum Verständnis: Du bist also auf der Suche nach einer Möglichkeit in einem Skript-Kontext die Suche auf einen bestimmten Ordner in der Medienverwaltung einzugrenzen. Wie genau ist der Anwendungsfall? Wäre es hier nicht möglich ein Skript auf dem jeweiligen Ordner auszuführen?

Viele Grüße

Rafael

0 Kudos

Hallo Nils,

ist deine Frage noch aktuell oder hast du zwischenzeitlich evtl. eine eigene Lösung gefunden?

In diesem Fall wäre es super, wenn du diese hier bereitstellst.

Solltest du noch weitere Hilfe benötigen, würde ich dich ebenfalls bitten, deinen Anwendungsfall einmal zu beschreiben.

Viele Grüße

Michaela

0 Kudos
Anonymous
Not applicable

Hallo Rafael,

da die FirstSpirit-Suche für unsere Zwecke (spezifisch nach Medien suchen aufgrund Erstellungsdaten-Zeiträumen und bestimmten Suchbegriffen, die in UID, Displayname, Description oder Medien-Metadaten vorkommen dürfen) nicht wirklich gut zu nutzen ist, da die Suchen sehr schnell sehr komplex werden und keiner unserer Redakteure die Syntax selbst zusammenbauen soll (bzw. kann), haben wir einen eigenen "Suchclient" geschrieben, in dem sich eine Suche "zusammenklicken" lässt und "unter der Haube" den QueryAgent nutzt.

Nun lasse sich immerhin solch handliche Queries mit wenigen Klicks erstellen:

Madonna and fs.type = Picture and meta.cs_createdAt > 2014-03-26 and meta.cs_createdAt < 2014-03-27 and (fs.meta = 0 or meta.mt_activeTo = "" or meta.mt_activeTo > '2014-03-27T16:07:45'))

Allerdings scheint es eben keine Möglichkeit zu geben dem QueryAgent zu sagen: "Such mir bitte alle Bilder, die das Suchwort 'xyz' besitzen und gleichzeitig unterhalb des Ordners 'images' liegen", da der QueryAgent so etwas wie "Parent" oder "Parent-Chain" in der Suchsyntax nicht zu kennen schein.

Daher haben wir nun auf das Feature verzichtet. Leider können Redakteure hierdurch Medien finden, die wir ihnen gerne vorenthalten hätten, wie bspw. im HTML/CSS genutzte Icons.

Viele Grüße,

Nils

0 Kudos

Hallo Nils,

der QueryAgent liefert ja eine Liste von IDProvidern zurück. Wäre es im Anwendungsfall nicht möglich diese Liste vor dem Weiterverarbeiten erneut zu filtern, indem man über die Liste iteriert und überprüft ob ein bestimmter Ordner im Pfad des entsprechenden Mediums vorhanden ist?

Viele Grüße

Rafael

0 Kudos

Hallo Nils,

benötigst du noch weitere Hilfe oder hat wurde deine Frage durch Rafael bereits beantwortet? Solltest du noch weitere Hilfe benötigen, bitte ich dich, Rafaels Rückfrage zu beantworten. Andernfalls wäre es super, wenn du die "richtige" Antwort entsprechend markierst.

Solltest du eine eigene Lösung gefunden haben, wäre es nett, wenn du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos
Anonymous
Not applicable

Hi Rafael,

angenommen der QueryAgent liefert mir eine Liste von 500 IDProvider zurück.

Wie bekomme ich ohne Umwege über die Holzhammermethode "iteriere so lange über IDProvider.getParent() bis der gesuchte Ordner gefunden ist oder null"? Denn das ist alles andere als performant 😞

Ich habe in IDProvider und Media bis jetzt auch keine API-Methode gefunden, die mit den gesamten Dateipfad des Mediums zum Durchsuchen (und sei es per RegEx) liefert. So etwas wie getPath() oder getAbsolutePath() einer java.io.File.

Viele Grüße,

Nils

0 Kudos

Hallo Nils,

eine andere performantere Lösung habe ich leider nicht finden können, da es bei StoreElementen bzw. IDProvidern keine vergleichbaren Methoden gibt um den Pfad zu erhalten. Wenn Du möchtest kannst Du einen Feature-Request stellen, damit sowas in späteren Versionen möglich ist.

Viele Grüße

Rafael

0 Kudos