ElasticSearch генерирует предел поля индекса, достигнутый при попытке выполнить массовый индекс - PullRequest
0 голосов
/ 30 октября 2018

Я использую этот код 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"
                }
            }
        }
    }
}

Я действительно не понимаю этого, похоже, что все на месте и должно работать.

1 Ответ

0 голосов
/ 30 октября 2018

Вы столкнулись со стандартной защитой ES "отображение взрыва".

Похоже, что вы уже знаете настройки для просмотра, так как у вас есть ограничение 5500 вместо 1000 по умолчанию. Не могли бы вы проверить, действительно ли ваше отображение в индексе соответствует структуре csv? Пока что похоже, что набор полей отображения и заголовки CSV превышают 5500

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...