[엘라스틱서치] ingest pipeline에서 데이터를 색인할 때, 필드가 없어서 실패하는가? - forewalk/elastic GitHub Wiki

Elasticsearch

ingest


LS를 사용하지 않고 전처리를 할 수 있는 방법은 여러 방법이 있겠지만, LS처럼 자주 사용되고 또 편하게(?) 사용할 수 있는 방법이 ingest pipeline을 이용하면 된다. 이는 우리가 node role을 ES yml 설정등을 할때, 늘 쓰는 node.ingest= true 였나, 이게 ingest pipeline을 사용한다는 의미라 볼 수 있다.

어찌되었던 ingest pipeline은 LS의 pipeline과 좀 다른데, 기본적인 script만 작성해서는 데이터 색인시, 해당의 필드가 없으면 fail 메시지가 발생하게 된다. 이에 따라 줘야 하는 script 안에 선언한 필드에 줘야하는 옵션이 있는데,

ignore_failure / ignore_missing 옵션이다. 이에 따라 해당의 필드 내용이 없어도 무시하고 계속 진행할 수 있게된다. failure와 missing의 차이가 무엇이냐 의문이 들텐데, 이건 나도 테스트 못해봤지만, boolean에 대한 처리가 추가되었다 어쩐다 뭐 이런얘기를 하던데, 어찌되었던 ignore_failure 가 기능이 추가된 옵션인 듯하다.

참고