Сначала извините из-за моего английского sh. Так что у меня есть текстовые файлы в алгоритме дерева с глубиной 2di git (1.367 файлов, 37 папок), выглядит так
a(folder)
a-b-c-d-e .... z (files)
b(folder)
a-b-c-d-e .... z (files)
...
z(folder)
a-b-c-d-e .... z (files)
Итак, я попытался чтобы импортировать эти файлы в Elasticsearch следующим образом,
def index_create(es, index_name):
if not es.indices.exists(index_name):
mapping = {
"settings": {
"number_of_replicas": 0,
"auto_expand_replicas": False,
},
"mappings": {
"properties": {
"name": {
"type": "keyword"
},
"lastname": {
"type": "keyword"
}
},
}
}
res = es.indices.create(
index=index_name,
body=mapping
)
print(res)
Я пытаюсь создать индексы
aa-ab-ac-ad ... az
ba-bb-bc-bd ... bz
.....
......
za-zb-zc-zd ... zz
По сути, мне нужно создать 1,376 для 1,367 файлов, но из-за ошибки " shard limit "
{u'index': u'nn', u'acknowledged': True, u'shards_acknowledged': True}
{u'index': u'no', u'acknowledged': True, u'shards_acknowledged': True}
{u'index': u'np', u'acknowledged': True, u'shards_acknowledged': True}
{u'index': u'nq', u'acknowledged': True, u'shards_acknowledged': True}
{u'index': u'nr', u'acknowledged': True, u'shards_acknowledged': True}
{u'index': u'ns', u'acknowledged': True, u'shards_acknowledged': True}
Traceback (most recent call last):
File "treeGeneratorForElasticSearch.py", line 47, in <module>
index_create(es, root+x+y)
File "treeGeneratorForElasticSearch.py", line 29, in index_create
body=mapping
File "C:\Python27\lib\site-packages\elasticsearch\client\utils.py", line 84, in _wrapped
return func(*args, params=params, **kwargs)
File "C:\Python27\lib\site-packages\elasticsearch\client\indices.py", line 100, in create
"PUT", _make_path(index), params=params, body=body
File "C:\Python27\lib\site-packages\elasticsearch\transport.py", line 358, in perform_request
timeout=timeout,
File "C:\Python27\lib\site-packages\elasticsearch\connection\http_urllib3.py", line 261, in
perform_request
self._raise_error(response.status, raw_data)
File "C:\Python27\lib\site-packages\elasticsearch\connection\base.py", line 182, in _raise_error
status_code, error_message, additional_info
elasticsearch.exceptions.RequestError: RequestError(400, u'validation_exception', u'Validation
Failed: 1: this action would add [2] total shards, but this cluster currently has [1000]/[1000]
maximum shards open;')
Это ошибка, которую я получаю после создания ровно 500 индексов. Я знаю, что это глупый способ создания указателей, но похоже, что Elasticsearch не использует подпункты или подобные вещи. подскажите простой способ импортировать мою базу данных в Elasticsearch? У меня примерно 3-4 ТБ данных, поэтому мне нужно разделить базу данных, чтобы ускорить поиск. Как я могу правильно поместить эти базы данных в Elasticsearch?
Надеюсь, каждый может понять, чего я хочу ..