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(); 

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne