2016-06-29 42 views
0

ich eine Solr-Abfrage haben:Solr-Abfrage mit einer Facette Bereich über 16 Monate gibt den falschen Wert für NOW

q=*%3A*&rows=0&wt=json&indent=true&facet=true&facet.range.start=NOW-24MONTHS&facet.range=create_date_tdt&facet.range.end=NOW&facet.range.gap=%2B1MONTH 

Das einzige, was in dieser Abfrage ändert, ist die facet.range.start Wert, der würde sei entweder NOW-12MONTHS, NOW-24MONTHS oder NOW-36MONTHS.

Für NOW-12MONTHS, stellen die Ergebnisse "end": "2016-06-29T16:38:11.959Z"

Für NOW-24MONTHS, die Ergebnisse "end": "2016-07-28T16:15:17.087Z" gesetzt

Diese Abfragen Minuten auseinander liefen wurden, so dass Endwert nicht für den nächsten Monat sein sollte.

Ich Solr für Datumsbereiche 4.8.1

Antwort

0

Die üblichen bewährten Verfahren verwendet, ist Granularität ist für die Mathematik zu gewährleisten. Das würde bedeuten, NOW zu der monatlichen Granularität mit NOW/MONTH zu bringen. Möglicherweise müssen Sie das Enddatum etwas später anpassen, um sicherzustellen, dass Sie heute eine neue Notation verwenden (z. B. end = NOW/MONTH + 1MONTH).

Ich würde das testen und sehen, ob das Problem verschwindet.

Darüber hinaus ist NOW in den Abfragen nicht granuliert sehr ineffizient für das Zwischenspeichern, da Abfragen nicht wiederverwendet werden können.