Я следующий набор данных индексированы в моем elasticsearchElasticsearch фильтровать несколько полей
{
"title": "Professor",
"class": [6001, 6015, 6018],
"subject": [5010, 5012, 5013],
"salary": 12500
}
{
"title": "Professor",
"class": [6012, 6013, 6014],
"subject": [5010, 5005, 5004],
"salary": 16600
}
{
"title": "Principal",
"class": [7001, 7010, 6018],
"subject": [5010, 5012, 5013],
"salary": 14750
}
{
"title": "Asst Professor",
"class": [6012, 6013, 6014],
"subject": [5010, 5005, 5004],
"salary": 16600
}
Я пытаюсь найти
класс - 6001 ИЛИ 6018 ИЛИ 6013 И Subject - 5013 ИЛИ 5004 И Зарплата (диапазон) - от 12000 до 15000
Я использую нижеследующий запрос
{
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" : [
{ "term" : {"class" : [6001, 6018, 6013]}},
{ "term" : {"subject" : [5013, 5004]}},
{"range" : {"salary" : {"gte": 12000,"lte": 15000}}}
]
}}}}}
Но я не получаю результат, который Я ожидаю, что в этом плохого?
Это работает !! Как применять оператор И между терминами? – syv