Suche für mehrere tags in CQ5
Ich bin mit CQ5 ist SimpleSearch-Klasse, um eine Suche der Umsetzung. Einer meiner Anforderungen ist, dass muss ich überprüfen, um zu sehen, ob ein tag vorhanden ist (für eine faule form der Authentifizierung). Das ist ganz einfach. Das problem liegt darin, dass ich wünschte, um zu sehen, ob dieser tag in der "GFS:Inhalt/cq:tags" oder die "jcr:content/Metadaten/cq:tags". So für ich nicht in der Lage gewesen, dies zu tun. Jede Beratung würde sehr geschätzt werden. Danke!
Hier ist der code:
Predicate tagPredicate;
Cookie[] tagsFromCookie = slingRequest.getCookies();
tagPredicate = new Predicate("tags", "tagid");
tagPredicate.set("property", "jcr:content/cq:tags");
for (Cookie cookie : tagsFromCookie) {
if (cookie.getName().contains(CREDENTIALS)) {
tagPredicate.set("tagid",
(cookie.getValue().replaceAll("---", ":")));
search.addPredicate(tagPredicate);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich nicht verwendet, die
SimpleSearch
Mechanismus selbst, sondern die Dokumentation besagt, dass Sie können erstellen Sie einePredicateGroup
(Unterklasse vonPredicate
) mit mehreren Prädikaten, und können geben Sie den logischen operator (UND/ODER) durch den AufrufsetAllRequired()
.http://dev.day.com/docs/en/cq/5-3/javadoc/com/day/cq/search/PredicateGroup.html
Vielleicht können Sie versuchen,:
EDIT: Vergessen zu erwähnen, dass mit der
JcrPropertyPredicateEvaluator
können Sie eine operation ähnlichjcr:like()
. Fürjcr:contains()
, werden Sie wahrscheinlich wollen, um den vollen text evaluator.Alternativ können Sie nur direkt erstellen und ausführen einer JCR-Abfrage. Ich finde, dass es viel mehr geradlinig als die Schaffung von Prädikaten und mit der
QueryBuilder API
. Hier ist eine sehr einfache XPath-Beispiel:http://www.day.com/maven/jsr170/javadocs/jcr-2.0/javax/jcr/query/Query.html
ich würde eine einfache jcr-Abfrage für cq:tags-Eigenschaft Wert, was Knoten, so
Können Sie dann die Ergebnisse zu berechnen die enthaltende Seite oder asset