검색결과 리스트
글
LANGUAGE/!$%!% ERROR NOTE
2019. 12. 23. 13:49
Java
1. Error - 오류
org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: no requests added;
Java
에서 RestHighLevelClient
를 이용하여 ElasticSearch
와 연결되어 Indexing
을 하도록 설계하였다.
그런데 어디에서는 되고 어디에서는 안되는 상황이 생겼다. (특정 환경에서 오류가 발생
)
환경
JDK 1.8
compile 'org.elasticsearch.client:elasticsearch-rest-client:7.3.0' compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.3.0'
ElasticSearch 7.3.2
2. Problem - 문제
정확한 원인은 알 수 없었지만, ElasticSearch개발자나 여타 사용자들이 BulkRequest
가 아니라 BulkProcessor
를 사용할 것을 권장하는 것 같다.
3. Solved - 해결
Indexing을 하는 시스템을 구축중이라면 되도록이면 Logstash를 익혀서 사용할 것을 권하고 싶다.
방법1. BulkProcessor를 사용한다. (자신의 버전에 맞는 문서를 참조한다.)
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk-processor.html방법2. Logstash를 사용한다.
4. Reference - 참고
- (java) I don’t know why this error occurs Validation Failed: 1: no requests added: https://discuss.elastic.co/t/java-i-don-t-know-why-this-error-occurs-validation-failed-1-no-requests-added/157952/2
- Using Bulk Processor: https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk-processor.html
- dadoonet/legacy-search: https://github.com/dadoonet/legacy-search/blob/02-bulk/src/main/java/fr/pilato/demo/legacysearch/dao/ElasticsearchDao.java#L57-L77