Мультизапись условного поиска в Elastic - PullRequest
0 голосов
/ 03 июля 2019

Я принимаю данные CSV в Elasic через Filebeats.Поэтому каждая строка в CSV создает запись.Поиск определенных записей легко выполнить, но я хочу выполнить условный поиск на основе нескольких записей и / или визуализировать данные.

Данные выглядят так (в очень упрощенном формате):

Record 1: a=1, b=1, c=1
Record 2: a=1, b=2, c=2
Record 3: a=1, b=1, c=2
Record 4: a=1, b=1, c=1
Record 5: a=2, b=2, c=2
Record 6: a=3, b=1, c=2
Record 7: a=3, b=1, c=1

(сотни тысяч этих записей существуют для тысяч различных переменных 'a')

В основном я хочу написать запрос, где:

If any record exists where a=1 and c=1 (if no match, stop here)
(Then search every record where a=1)
Where a=1 display every record where b=2
And here is the catch, if c=1, b can never equal 2 (technical impossibility). 
And I only care if b=2 if c=1 for any possible record where a matches.
Then I want to repeat that query where a=all possible unique values.

Таким образом, поиск, где c = 1, никогда не приведет к записи, где b = 2.Во многих наборах данных b будет равно 2 сотням раз, где c = 2.

Я пытался визуализировать это с помощью фильтров, запросов json и т. Д., И мне не повезло заставить его работать.Единственное, о чем я могу подумать, это довольно неприятно - добавить поле «d» к данным, основанным на словаре, которое будет отмечать каждую запись каждого экземпляра «a».Я пробовал табличную функцию визуализации, но также не могу соответствующим образом отфильтровать данные.

Поиск c = 1 И b = 2 дает ноль результатов.

Поиск c = 2никогда не выдаст, где c равно 1 и, следовательно, предоставит слишком много результатов, не отфильтровывая данные.

Поиск b = 2, где c = 1 ИЛИ c = 2, даст все результаты и не отфильтрует их должным образом.

Мне кажется, мне нужен if, если он вложен в if, и я не могу найти пикантный ответ.

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