Здраствуйте, я пытаюсь создать QueryBuilder
По аналагии Mysql
WHERE (domaindId AND ((userId AND date_rage) or (userId AND date_rage) or ...)
DateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
BoolQueryBuilder queryBuilder = QueryBuilders
.boolQuery()
.must(termQuery(DOMAIN_ID, request.getDomainId()));
for (UserActivityPeriod u : request.getUserPeriods()) {
queryBuilder
.must(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery()
.must(termQuery(USER_ID, u.getUserId()))
.must(rangeQuery(DATE)
.gte(formatter.format(u.getPeriod().getFromDate()))
.lte(formatter.format(u.getPeriod().getEnd()))
.format(DATE_FORMAT))));
}
Вот результат QueryBuilder
{
"bool" : {
"must" : [
{
"term" : {
"domainId" : {
"value" : 7,
"boost" : 1.0
}
}
},
{
"bool" : {
"should" : [
{
"bool" : {
"must" : [
{
"range" : {
"date" : {
"from" : "2017-12-05",
"to" : "2017-12-05",
"include_lower" : true,
"include_upper" : true,
"format" : "yyyy-MM-dd",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
{
"bool" : {
"should" : [
{
"bool" : {
"must" : [
{
"range" : {
"date" : {
"from" : "2017-12-06",
"to" : "2017-12-06",
"include_lower" : true,
"include_upper" : true,
"format" : "yyyy-MM-dd",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
Запрос не выполняеться если не обернуть его в обьект query
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть класс(Example) который реализует интерфейс Serializable
Есть класс Test, потомок ThreadКак мне настроить log4j2 что бы для каждого потока Test создавался свой лог файл
Пытаюсь геокодировать адрес переменной adr в координаты с долготой и шириной и отобразить метку на картеЗапускаю приложение
Привет! Есть простой массив Object[] arr = new int[50] заполненный некими значениями, также есть другой массив Object[][][][][] fiveDArr, правда он 5-ти мерный, нужно...