#일래스틱서치 탄생

처음에는 MVEL 지원

https://github.com/mvel/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 외에도 다음 스크립트 언어를 지원한다.
* 빠른 사용자 정의 랭킹과 정렬에 주로 사용되는 루씬 표현식
* 검색 템플릿에 사용되는 mustache
* 자바(사용자 정의 플러그인을 작성)


- 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 

}




Posted by '김용환'
,