본문 바로가기
IT/Elasticsearch

Limit of total fields [1000] in index has been exceeded

by 최고영회 2022. 8. 23.
728x90
반응형
SMALL

특정 document 를 저장하는데 아래와 같은 오류가 발생한다. 

 

Limit of total fields [1000] in index has been exceeded

 

말 그대로 하나의 index 에 1,000 개 이상의 fields 를 저장할 수 없다는 말인데 

이상하다... field 를 이렇게 많이 사용하고 있지 않은데 왜 이런 오류가 발생하지?

 

저장하는 데이터 중 paramList 라는 데이터를 Map 형태로 저장하고 있고

해당 field 에 대한 mapping 정보를 임의로 지정하지 않았더니

value 에 해당하는 map - (key: parameter key, val: parameter value) 에 포함된 각각의 key 가 field 로 mapping 되어 

parameter 가 늘어날 수록 (누적) field 가 추가되는 현상이 발생한 것이다. 

 

paramList 에 대한 mapping 정보를 text, keyword(with ignore_aobve) 로 지정하고 

parameter 정보를 text 로 저장하고 keyword 로 지정하여 map 을 그대로 이용하지 않고 key=val&key=val 형태로 만들어 저장하도록 수정하여 문제를 해결했다. 

 

P.S

max size 를 조정할 수도 있겠지만 일단 저장하는 정보 자체가 의도하지 않은 상태로 매핑된 것 이기 때문에 max size 를 늘릴 필요가 없었고, max size 를 늘릴 경우 elasticsearch 의 성능 문제 (메모리 등)로 이어질 수 있기 때문에 함부로 조정하는 것은 좋지 않다. 

728x90
반응형
LIST