Я пытаюсь использовать Elasticsearch-dsl-py для индексации некоторых данных из jsonl-файла со многими полями. игнорируя менее общие части, код выглядит следующим образом:define parent in elasticsearch-dsl-py
es = Elasticsearch()
for id,line in enumerate(open(jsonlfile)):
jline = json.loads(line)
children = jline.pop('allChildrenOfTypeX')
res = es.index(index="mydocs", doc_type='fatherdoc', id=id, body=jline)
for ch in children:
res = es.index(index="mydocs", doc_type='childx', parent=id, body=ch)
пытается запустить это заканчивается с ошибкой:
RequestError: TransportError(400, u'illegal_argument_exception', u"Can't specify parent if no parent field has been configured")
Я думаю, мне нужно сказать эс заранее, что имеет родитель. Однако я не хочу отображать ВСЕ поля как для этого.
Любая помощь очень приветствуется!
я могу это сделать без перечисления всех полей - просто " _parent? – Ori5678
Вам нужно сделать это во время создания индекса, что означает, когда вы определяете свое сопоставление. Вы можете определенно позволить ES динамически создавать свои поля на ходу, но поле '_parent' должно быть указано в самом начале перед индексированием первого документа. – Val
Любая удача с этим? – Val