Frage

Ihre Anwendung erfordert möglicherweise eine Suche basierend auf Datumsbereichen, zum Beispiel eine Suche nach allen Knoten, die in den letzten 3 Tagen erstellt wurden.

Wie ist es möglich, eine Datumsbereichsuche durchzuführen?

Antwort

CRX bietet die Möglichkeit, Datumsbereiche mithilfe der xs:dateTime-Zuordnung auszudrücken. Das folgende Beispiel zeigt, wie nach Knoten unter /content/mypage gesucht wird, die zwischen dem 24.04.2009 und 28.04.2009 erstellt wurden:

/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')] 

Die Lucene-Suchmaschine indiziert das tatsächliche Datum in Millisekunden. Aus diesem Grund ist die Zuordnung mit der Funktion xs:dateTime in der Datumsbereichsuche erforderlich. Die formatierte Zeichenfolge, die an diese Funktion übergeben wird, sollte in der Form erhalten werden, wie im folgenden Codeausschnitt gezeigt:

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

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie