Создать функцию для обработки и поиска данных в ElasticSearch
В настоящее время в моем отображении (ES 6.2) у меня есть два свойства:
- срок исполнения: введите дату, сохраните дату и время, чтобы узнать, какой срок выполнения проекта
- current_stats: введите long, store, если статус проекта открыт (1), закрыт (5) или отменен (4).
В моем PostgreSQL у меня есть функция, которая обрабатывает эти данные и возвращает, истек ли крайний срок, как показано ниже:
IF (deadline IS NULL) THEN
--WITHOUT DEADLINE
RETURN 2;
ELSIF
(
((current_stats IN (4, 5)) AND (deadline >= current_timestamp))
)
THEN
--UNEXPIRED DEADLINE
RETURN 1;
ELSIF
(
((current_stats NOT IN (4, 5)) AND (deadline < datahora))
)
THEN
--EXPIRED DEADLINE
RETURN 0;
ELSIF
(
((current_stats IN (4, 5)) AND (deadline < current_timestamp))
)
THEN
--EXPIRED DEADLINE
RETURN 0;
ELSIF
(
((current_stats NOT IN (4, 5)) AND (deadline >= current_timestamp))
)
THEN
--UNEXPIRED DEADLINE
RETURN 1;
ELSIF
(
((current_stats NOT IN (4, 5)) AND (deadline < current_timestamp))
)
THEN
--EXPIRED DEADLINE
RETURN 0;
END IF;
Можно ли создать что-то подобное в ElasticSearch, чтобы найти данные с помощью функции?
Пример:
"bool": {
"term": [
{
function_deadline_ok(deadline, current_stats): 1
}
]
}