[elasticsearch5] elasticsearch scripting 역사
#일래스틱서치 탄생
처음에는 MVEL 지원
(얼마 못가 지원하지 않음)
#일래스틱서치 1.4
MVEL에서 그루비로 대체
# 일래스틱서치 1.5
MVEL은 1.5 버전부터 마침내 제거되었다.
# 일래스틱서치 5.0
일래스틱서치 5.0버전부터 그루비 스크립팅 언어가 Deprecated되었고 5.0 향후 버전에서 제거될 것이다. 그루비는 새로운 언어인 Painless로 대체되었다. 그루비를 계속 사용할 수 있지만 elasticsearch.yml 파일에서 동적 스크립팅을 활성화해야 한다. Painless을 사용하기 위한 추가 설정이 필요하지 않다.
일래스틱서치는 그루비, 파이썬 뿐 아니라 자바스크립트의 언어 플러그인을 지원했었다. 일래스틱서치 5.0.0 버전부터 기존 언어의 플러그인은 사용 중단되었고 Painless으로 대체되었다.
- Painless 예제
* Groovy와 비슷하게 생겼다.
def sum = 0
def listOfValues = [0, 1, 2, 3]
def sum = 0;
for (def i = 0; i < 10; i++) {
sum += i;
}
def sum = 0;
for ( i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ) {
sum += i;
}
def i = 2;
def sum = 0;
while (i > 0) {
sum = sum + i;
i--;
}
def year = doc[\"year\"].value;
if (year < 1800) {
return 1.0
} else if (year < 1900) {
return 2.0
} else {
return year - 1000
}