OpenSearch возвращает результаты на основе поля в нескольких индексах
У меня есть индекс, содержащий уязвимые зависимости и их статус в репозиториях. Я не хочу удалять предупреждения, когда они устранены, так как я также хочу регистрировать, что уязвимость была исправлена.
Однако это означает, что я получаю некоторые данные, с которыми я не уверен, что было бы лучше всего обработать.
Вот упрощенный пример того, как выглядят мои данные
Всего создано 5 предупреждений об уязвимостях. 2 из них уже решены. Теперь - что я хочу сделать, так это показать текущий статус. У нас еще есть 3 активные уязвимости. Как мне показать только 3 соответствующие строки? (1, 4 и 7)
Имейте в виду, что я все еще новичок в использовании ELK/OpenStack, поэтому я не знаю, лучше ли это решить с помощью запросов или фильтров, или это поможет разделить на несколько индексов.
1 ответ
Я бы сказал, что самым простым способом было бы поддерживать 2 индекса: один для
actions
с тем, что у вас есть в таблице выше, и один с
vulnerabilities
и текущий статус. Поэтому всякий раз, когда вы создаете действие, вы также должны создавать документ об уязвимости с
status == "created"
и когда вы создаете действие, которое не
"created"
вы будете update_by_query этот документ установить
status = "resolved"
. Тогда ваш запрос станет очень простым.
Альтернативой может быть использование сворачивания , но, по моему опыту, его поведение довольно запутанно, когда вы пытаетесь разбить на страницы или агрегировать результаты.