Фильтрация данных, либо из эластичного поиска, либо со стороны сервера - PullRequest
0 голосов
/ 14 мая 2019

Я реализую 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; }

Но это, очевидно, не сработает. Кроме того, даже если мне удастся отсортировать данные с упругого поиска, мне все равно придется об этом беспокоиться, поэтому в основном мне нужна помощь по двум вопросам.

Надеюсь, этой информации было достаточно, чтобы дать вам представление о моей проблеме.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...