Lorsqu’un champ contient des données pour lesquelles une plage peut être spécifiée, telles que des valeurs numériques ou des dates/heures, il est possible d’effectuer une recherche par plage sur ce champ.
Utilisation
Pour effectuer une recherche par plage, saisissez « nom_champ:[valeur TO valeur] » dans le formulaire de recherche. Le séparateur de plage est TO, à saisir en majuscules (caractères alphanumériques standard).
Par exemple, pour rechercher des documents dont le champ content_length est compris entre 1 Ko et 10 Ko, saisissez ce qui suit dans le formulaire de recherche :
Les crochets [ ] incluent les bornes de la plage (supérieur ou égal / inférieur ou égal), tandis que les accolades { } les excluent (strictement supérieur / strictement inférieur). Il est également possible de combiner les deux. Par exemple, content_length:{1000 TO 10000] représente les documents dont la valeur est strictement supérieure à 1000 et inférieure ou égale à 10000.
En utilisant * d’un seul côté, vous obtenez une plage ouverte ne spécifiant que la borne supérieure ou la borne inférieure. content_length:[1000 TO *] représente les valeurs supérieures ou égales à 1000, et content_length:[* TO 10000] représente les valeurs inférieures ou égales à 10000.
La recherche par plage n’est valable que pour les champs enregistrés comme cibles de recherche. Par défaut, les champs content_length, last_modified, timestamp, click_count et favorite_count peuvent être utilisés pour une recherche par plage.
Recherche par plage de temps
Pour effectuer une recherche par plage de temps (date/heure), saisissez « last_modified:[datetime1 TO datetime2] » (datetime1 < datetime2) dans le formulaire de recherche. Notez que si datetime1 est postérieur à datetime2, cela ne provoque pas d’erreur : le résultat de la recherche sera simplement de 0 document.
Les dates/heures doivent être indiquées au format ISO 8601. Le format est YYYY-MM-DDThh:mm:ss.SSSZ, et la partie relative à l’heure peut être omise.
| Contenu spécifié | Exemple |
|---|---|
| Année, mois, jour uniquement | 2012-12-02 |
| Année, mois, jour, heures, minutes, secondes | 2012-12-02T10:45:23Z |
| Année, mois, jour, heures, minutes, secondes (jusqu’aux millisecondes) | 2012-12-02T10:45:23.235Z |
Pour spécifier une date/heure, vous pouvez utiliser des calculs de date/heure basés sur la date/heure actuelle. Les symboles utilisables sont les suivants :
| Symbole | Signification |
|---|---|
now | Date/heure actuelle |
y / M / w / d / h / m / s | Année / mois / semaine / jour / heure / minute / seconde |
+ / - | Addition / soustraction |
/ | Arrondi (arrondi à l’unité qui suit /) |
Lorsque vous utilisez now ou une date/heure comme référence, vous pouvez ajouter des symboles tels que +, - (addition, soustraction) ou / (arrondi). Cependant, si la référence est une date/heure précise plutôt que now, il est nécessaire d’insérer || entre la date/heure et le symbole (exemple : 2016-01-01||+1M/d).
/ est le symbole qui permet d’arrondir à l’unité indiquée après /. now-1d/d représente 00:00 de la veille, c’est-à-dire 00:00 du jour actuel moins 1 jour, quelle que soit l’heure d’exécution de la requête aujourd’hui.
Notez que ces calculs de date/heure sont évalués côté moteur de recherche (OpenSearch) et ne sont valables que pour les champs de type date/heure.
Par exemple, pour rechercher, dans le champ last_modified, les documents mis à jour entre 30 jours avant la date/heure actuelle (supposée être le 21 février 2016 à 20h) et la date/heure actuelle, saisissez ce qui suit dans le formulaire de recherche :
Si la date/heure actuelle est le 21 février 2016 à 20h (UTC), cela correspond approximativement à la plage [2016-01-22T20:00:00Z TO 2016-02-21T20:00:00Z].