#elasticsearch #elasticsearch-aggregation #elasticsearch-dsl
#elasticsearch #elasticsearch-агрегирование #elasticsearch-dsl
Вопрос:
В настоящее время мои данные ES похожи на-
{
..............
..............
"centers" : [
.................
.................
{
"code" : "ABCA",
"name": "first_code",
"level" : 0
},
{
"code" : "XYZX",
"name": "second_code",
"level" : 1
},
{
"code" : "XYZX",
"name": "third_code",
"level" : -1
},
{
"code" : "QWERTY",
"name": "fourth_code",
"level" : 2
},
.................
.................
],
..............
..............
}
И я хочу фильтровать записи с таким условием, как это-
фильтруйте записи, где code = «ABCA» и code =»XYZX», с дополнительным фильтрующим кодом.уровень (ABCA) < код.уровень (XYZX)
Ожидаемый O / p:
{
"code" : "ABCA",
"name": "first_code",
"level" : 0
},
{
"code" : "XYZX",
"name": "second_code",
"level" : 1
}
Возможно ли это?
Комментарии:
1. там нет полей
code1
иcode2
, я полагаю, вы имеете в виду первый и второй элемент вашего массива cenetrs?2. Я обновил вопрос, чтобы устранить путаницу. В принципе, мне нужен фильтр с двумя условиями одновременно.
Ответ №1:
Вам нужно использовать запрос скрипта elasticsearch для достижения этого,
Пожалуйста, обратитесь к этому ответу SO и этому блогу для получения дополнительной информации и обновлений, если вам все еще нужна помощь, пожалуйста, покажите запрос, который вы пробовали, и были бы рады помочь в дальнейшем.