Reputation: 41
java.lang.NoSuchFieldError: INDEX_CONTENT_TYPE error
Elasticsearch Version : 7.16.2
// elasticsearch
implementation 'org.springframework.data:spring-data-elasticsearch:4.3.0'
implementation 'org.elasticsearch:elasticsearch:7.16.2'
implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.16.2'
// jackson-core
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.1'
public <T> void bulk(String indexName, List<T> documents, Class<T> tClass) {
elasticsearchIndex.setIndexName(indexName);
List<IndexQuery> queries = new ArrayList<>();
for (T document : documents) {
IndexQuery query = new IndexQueryBuilder()
.withObject(document)
.build();
queries.add(query);
}
IndexOperations indexOps = elasticsearchTemplate.indexOps(tClass);
if (!indexOps.exists()) {
indexOps.create();
indexOps.putMapping(indexOps.createMapping());
}
elasticsearchTemplate.bulkIndex(queries, tClass); // error
}
@Getter @Setter @ToString
@Document(indexName = "#{@elasticsearchIndex.getIndexName()}")
java.lang.NoSuchFieldError: INDEX_CONTENT_TYPE
Upvotes: 2
Views: 4040
Reputation: 4352
The problem you faced has been fixed in version 4.4.0 which supports elasticsearch 7.17.3.
Check https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#new-features.4-4-0
1.1. New in Spring Data Elasticsearch 4.4
- ...
- Upgrade to Elasticsearch 7.17.3.
Upvotes: 0
Reputation: 395
I experienced this same issue. I resolved it by downgrading Elastic Search and dependencies from 7.16
to 7.15
.
The current documentation shows that 7.15.2
is the highest version currently support (or tested for release).
Upvotes: 1