Я пытаюсь создать запрос elasticsearch, и для этого мне нужно получить свой массив в определенной форме, но я не могу его получить.
желаемый результат
"query": {
"bool": {
"must": {
"bool": {
"must": [
"match": {
"active": 1
},
"bool": {
"should": [
{
"match": {
"workspace_type.keyword": "lounge"
}
},
{
"match": {
"workspace_type.keyword": " cafe"
}
}
]
}
]
}
}
}
}
Мой исходный код
$query = [
'query' => [
'bool' => [
'must' => [
'bool' => [
'must' => []
]
]
]
]
];
$active_query = [
'match' => [
"active" => 1
]
];
$query['query']['bool']['must']['bool']['must'][] = $active_query;
$workspace_type_query = [
'match' => [
"workspace_type.keyword" => "lounge"
]
];
$workspace_type_object = (object) $workspace_type_query;
$query['query']['bool']['must']['bool']['must']['bool']['should'][] = $workspace_type_object;
единственная проблема с этим в том, что я не могу получить must [] (тот, который выше соответствует и активен), и он либо поступал как индексированный объект, например
{
"0": {
"match": {
"active": 1
}
}
}
или просто такой объект
{
"match": {
"active": 1
}
}
, но оба этих случая неприемлемы для запроса elasticsearch, который я пытаюсь сгенерировать ... любая помощь будет очень признательна.