Я пытаюсь извлечь документы, которые больше или меньше указанной даты.Spring Data Elasticsearch для извлечения документов между двумя датами генерирует неправильный запрос
Для этой цели я использую следующий searchQuery.
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.rangeQuery("date")
.gt("2015-06-25T00:00:00")
.lt("2015-06-25T00:00:00"));
Запрос, сформированный из вышеуказанного построителя запросов, выглядит следующим образом.
{
"bool" : {
"must" : [ {
"range" : {
"date" : {
"from" : "2015-06-25T00:00:00",
"to" : "2015-06-25T00:00:00",
"include_lower" : false,
"include_upper" : false
}
}
}
} ]
}
Даже когда я использовать функции GT и светопроницаемости rangequery запрос генерируется в от и до.
Какое решение можно создать таким образом.
{
"bool" : {
"must" : [ {
"range" : {
"date" : {
"gt" : "2015-06-25T00:00:00",
"lt" : "2015-06-25T00:00:00",
"include_lower" : false,
"include_upper" : false
}
}
}
} ]
}
Это класс испытаний, который я написал.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { ElasticSearchConfiguration.class }, loader = AnnotationConfigContextLoader.class)
public class ElasticSearchTest {
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
@Autowired
private Client client;
@Test
public void testAggregation(){
QueryBuilder querybuilder = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("receiptdate").gte("2015-06-25T00:00:00").lte ("2015-07-25T00:00:00")));
final SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(qb)
.build();
final List<Test> records = elasticsearchTemplate.queryForList(searchQuery, Test.class);
}
}
Любые предложения о том, как достичь этого в Spring Data Elicsearch, будут полезны.
Спасибо за ответ. Я пробовал этот запрос, но не возвращал данные с сервера. Это запрос ** QueryBuilder qb = QueryBuilders.boolQuery(). Must (QueryBuilders.rangeQuery ("recedate"). Gte ("2015-06-25T00: 00: 00"). Lte ("2015-07-25T00: 00:00 ")) ** – sumanth
Можете ли вы показать один документ, который, по вашему мнению, должен быть возвращен? – Val
Это пример JSON { "_index": "Тест", "_type": "Тест", "_id": "1015", "_version": 1, "_SCORE": 1, "_source": { "id": "1015", "createdDate": "2015-07-16T00: 00: 00.000Z ", " receiptnumber ":" 10150000187831 ", " paymentmode ":" cash ", " receiptdate ":" 2015-07-16T00: 00: 00.000Z ", " installmentfrom ":" 2015-04-01 », "installmentto": "2015-09-30", "reductionamount": нулевой, "receiptcreator": ""} } – sumanth