Эффективный способ запроса ElasticSearch - PullRequest
0 голосов
/ 19 февраля 2020

Ниже приведена краткая версия набора данных, над которым я работаю.

ID              TYPE                DATA            SERIES_ID       VALIDITY 
MOVIE_1         MOVIE           MOVIE_DATA_1        NULL            2000-2050
MOVIE_2         MOVIE           MOVIE_DATA_2        NULL            2000-2050
SERIES_1        TV_SERIES       SERIES_DATA_1       NULL            2000-2050
SERIES_2        TV_SERIES       SERIES_DATA_2       NULL            2000-2050
SERIES_3        TV_SERIES       SERIES_DATA_3       NULL            2000-2050
EPISODE_1       EPISODE         EPISODE_DATA_1      SERIES_1        2000-2050
EPISODE_2       EPISODE         EPISODE_DATA_2      SERIES_2        2000-2010 

Я хочу написать запрос, который возвращает все документы TYPE = (MOV IE, TV_SERIES), которые действительны (что означает, что текущий год (2020) находится между годами, указанными в VALIDITY). Однако при выборе TV_SERIES он также должен проверить, имеет ли TV_SERIES допустимый EPISODE. ​​

Так что для вышеприведенного набора данных запрос должен возвращать

ID          TYPE        DATA            SERIES_ID     VALIDITY 
MOVIE_1     MOVIE       MOVIE_DATA_1    NULL          2000-2050    (since it is valid)
MOVIE_2     MOVIE       MOVIE_DATA_2    NULL          2000-2050    (since it is valid)
SERIES_1    TV_SERIES   SERIES_DATA_1   NULL          2000-2050    (since it has EPISODE_1 which is valid)

SERIES_2, НЕ ДОЛЖЕН возвращаться, поскольку его Эпизод (EPISODE_2) недействителен в текущем году

SERIES_3 НЕ ДОЛЖЕН возвращаться, поскольку в нем нет эпизодов.

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