Question
Votre application peut nécessiter une recherche basée sur les périodes, par exemple rechercher tous les nœuds qui ont été créés au cours des 3 derniers jours.
Comment puis-je effectuer une recherche de période ?
Réponse
Le CRX offre la possibilité de définir des périodes à l'aide du mappage du xs:dateTime
. Voici comment récupérer les nœuds sous /content/mypage
créés entre le 24/04/2009 et le 28/04/2009 :
/jcr:root/content/mypage//*[@jcr:created >= xs:dateTime('2009-04-24T00:00:00.000+02:00') and @jcr:created < xs:dateTime('2009-04-28T00:00:00.000+02:00')]
Le moteur de recherche Lucene indexe la date réelle en millisecondes, c'est la raison pour laquelle le mappage qui utilise les fonctions xs:dateTime
est requise dans la recherche de période. La chaîne formatée transmise à cette fonction doit être obtenue comme illustré par l'extrait de code suivant :
// obtain javax.jcr.ValueFactory from JCR session ValueFactory factory = session.getValueFactory(); // obtain Calendar object Calendar cal = Calendar.getInstance(); // create javax.jcr.Value object of PropertyType.DATE Value dateValue = factory.createValue(cal); // finally, get string representation of the DATE-value which can be used in xs:dateTime function String dateString = dateValue.getString();
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?