Я использую этот код Python:
from elasticsearch import helpers, Elasticsearch
import csv
es = Elasticsearch(hosts="localhost:9200/")
with open('data.csv') as f:
reader = csv.DictReader(f)
helpers.bulk(es, reader, index='my-index', doc_type='my-type')
data.csv
- это CSV с 5004 заголовками и 2 миллионами строк (len(reader.fieldnames) = 5004
).
Когда я запускаю этот код, я получаю:
[2018-10-30T12:20:59,448][DEBUG][o.e.a.b.TransportShardBulkAction] [my-index][3] failed to execute bulk item (index) BulkShardRequest [[my-index][3]] containing [101] requests
java.lang.IllegalArgumentException: Limit of total fields [5500] in index [my-index] has been exceeded
at org.elasticsearch.index.mapper.MapperService.checkTotalFieldsLimit(MapperService.java:580) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:463) ~[elasticsearch-6.4.2.jar:6.4.2]
at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:355) ~[elasticsearch-6.4.2.jar:6.4.2]
...
Настройки my-index:
{
"my-index": {
"settings": {
"index": {
"mapping": {
"total_fields": {
"limit": "5500"
}
},
"number_of_shards": "5",
"provided_name": "my-index",
"creation_date": "1540894469635",
"number_of_replicas": "1",
"uuid": "wl1k8NZRR7GUwfMCgwpPMQ",
"version": {
"created": "6040299"
}
}
}
}
}
Я действительно не понимаю этого, похоже, что все на месте и должно работать.