La recherche sur les plages de dates avec Lucene en Java?
Est-il possible de faire une recherche sur les plages de dates à l'aide de Lucene en Java? Comment puis-je construire de recherche Lucene requêtes basées sur les champs de date et les dates des plages? Par exemple:
- entre les dates spécifiées
- avant une date spécifiée
- après une date spécifiée,
- dans les dernières 24 heures
- au cours de la dernière semaine
- au cours du mois passé.
[Edit] je suis l'aide de Lucene 2.4.1 et mon système est vraiment héritage et vraiment mal testé donc je voudrais si possible ne pas avoir à mettre à niveau
source d'informationauteur user199013
Vous devez vous connecter pour publier un commentaire.
Lucene (avant la version 2.9 de toute façon) seulement les magasins de la Chaîne de valeurs, et il prend en charge le vocabulaire de la gamme des requêtes sur les données. Donc, si vous voulez stocker les données de date/heure et performa gamme de requêtes, vous devez explicitement le format de vos données/valeurs de temps de manière à les rendre ordonné lexicographiquement.
Par exemple, de stocker la date de votre/de fois que quelque chose comme
2009-10-29T15:34:00
puis effectuez l'éventail des requêtes comme[2009-10-29T15:00:00 TO 2009-10-29T16:00:00]
Comme cela a été souligné ailleurs, Lucene 2.9 enfin introduit la prise en charge de la gamme des requêtes à l'encontre des non-chaîne de données, ce qui rend tout cela plutôt facile.