Bonjour,
Je souhaite realiser une recherche en filtrant un champs (stocké en millisecondes) selon un intervalle de temps.
J'utilise un RangeFilter mais la requete ne me ramene rien.
Voici mon Code :
RangeQueryBuilder rangeDate =QueryBuilders.rangeQuery("dateDepart").to(datefin.getTime());
FilterBuilder dateFilter =
FilterBuilders.andFilter(FilterBuilders.rangeFilter(rangeDate.toString()));
Client client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("127.0.0.1",9300));
SearchResponse response = client.prepareSearch("myNode")
.setTypes("myIndex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),dateFilter) ) // Query
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
LOGGER.info("Nombre de Reponse :"+response.getHits().getTotalHits());
et j'obtiens :
---> Nombre de Reponse :0
PS: j'ai bien verifier que j'ai des documents avec une date repondant aux criteres , ex :
{
_index: "myNode"
_type: "myIndex"
_id: "9072834"
_score: 1
_source: {
idMetaEvenement: 9072834
dateDepart: 1362787200000
...
1362787200000 correspondant a : 29/03/2013
Pouvez-vous m'aider ?