Я реализую API, который использует Elasticsearch Мне удалось сделать свой запрос на поиск и получить ответ, но я все еще получаю слишком много данных назад. Мой код в настоящее время выглядит так:
'json' => [
"_source" => ["Vrvirksomhed.attributter",
"Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter",
"Vrvirksomhed.deltagerRelation.deltager.navne",
],
"query" => [
"bool"=> [
"must"=> [
[
"term"=> [
"Vrvirksomhed.cvrNummer" => $vat
]
]],
"must_not"=> [ ],
"should"=> [ ]
]
],
"from"=> 0,
"size"=> 10,
"sort"=> [ ]
]
Теперь и Vrvirksomhed.attributter
, и тот, у которого более длинное имя и заканчивается атрибутом, являются массивами с кучей объектов без имен. Однако у них есть поле, например, type : "KAPITAL"
. Теперь я хотел бы как-то добавить это к моему источнику, поэтому я получаю только атрибуты с типом «KAPITAL» вместо всех объектов в массиве.
Я пытался просто добавить Vrvirksomhed.attributter.type => "KAPITAL"
, но это не работает. Я также посмотрел на сохраненные_поля и дополнительные термины, но безрезультатно. Я не могу просто добавить его как еще один термин, потому что он отвечает 1 компании, а затем мне нужно только получить некоторые данные из этой компании, а не всей компании.
Если невозможно отсортировать данные больше, чем у меня уже есть, я хотел бы вместо этого сделать это в моем коде, но в настоящее время объект, который я получаю, я могу проанализировать в массив с $data = json_decode($body, true);
Теперь моя проблема в том, что этот массив массивен и имеет так много массивов внутри массивов, что мне трудно работать с ним. Я хотел бы что-то простое, как
$company = New CvrCompany();
foreach($data as $key => $value){
$company->{$key} = $value;
}
Но это, очевидно, не сработает. Кроме того, даже если мне удастся отсортировать данные с упругого поиска, мне все равно придется об этом беспокоиться, поэтому в основном мне нужна помощь по двум вопросам.
Надеюсь, этой информации было достаточно, чтобы дать вам представление о моей проблеме.
Спасибо.