Здраствуйте, я пытаюсь создать 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
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть класс(Example) который реализует интерфейс Serializable
Есть класс Test, потомок ThreadКак мне настроить log4j2 что бы для каждого потока Test создавался свой лог файл
Пытаюсь геокодировать адрес переменной adr в координаты с долготой и шириной и отобразить метку на картеЗапускаю приложение
Привет! Есть простой массив Object[] arr = new int[50] заполненный некими значениями, также есть другой массив Object[][][][][] fiveDArr, правда он 5-ти мерный, нужно...