Как насчет логического запроса с фильтрами? редактировать, так как было запрошено множественное совпадение
PUT /movies
{
"mappings": {
"properties": {
"director": {
"type": "text"
},
"name": {
"type": "text"
},
"releaseDate": {
"type": "date",
"format": "dd-MM-yyyy"
}
}
}
}
PUT movies/_doc/1
{
"name": "titanic",
"director": "james Cameron",
"releaseDate": "06-07-1997"
}
GET /movies/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"releaseDate": {
"gte": "05-07-1990",
"lte": "05-07-2000"
}
}
},
{
"multi_match": {
"query": "james",
"fields": ["director", "name"]
}
}
]
}
}
}
редактировать: В соответствии с комментарием, вы также можете сделать запрос условий вместо множественного совпадения:
GET /movies/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"releaseDate": {
"gte": "05-07-1990",
"lte": "05-07-2000"
}
}
},
{
"term": {
"name": "titanic"
}
},
{
"term": {
"director": "james cameron"
}
}
]
}
}
}