asticsearch_dsl TypeError: index () отсутствует 1 обязательный позиционный аргумент: 'doc_type' - PullRequest
0 голосов
/ 25 января 2020
class Article(Document):
    title = Text(analyzer='snowball', fields={'raw': Keyword()})
    body = Text(analyzer='snowball')
    tags = Keyword()
    published_from = Date()
    lines = Integer()

    class Index:
        name = 'blog45'
        settings = {
          "number_of_shards": 2,
        }

    def save(self, ** kwargs):
        self.lines = len(self.body.split())
        return super(Article, self).save(** kwargs)

    def is_published(self):
        return datetime.now() >= self.published_from

# create the mappings in elasticsearch
Article.init()

# create and save and article
article = Article(meta={'id': 42}, title='Hello world!', tags=['test'])
article.body = ''' looong text '''
article.published_from = datetime.now()
article.save() ### BOMBS HERE!!! ###

My save () всегда выдает ошибку:

TypeError: index () отсутствует 1 обязательный позиционный аргумент: 'doc_type'

Пример выше было взято из документации, но не работает правильно. Как я могу указать [doc_type]?

В эластичном поиске-py его

res = elastic_client.index(index="bb8_index", body=doc, doc_type='_doc')

1 Ответ

0 голосов
/ 02 февраля 2020

Начиная с 1.02.2020:

Я бы не использовал библиотекуasticsearch_dsl, поскольку он не может сохранять / индексировать документ в Elasticsearch. Библиотека не совместима с последней версией Elasticsearch (7.5 +).

Используйте обычную библиотекуasticsearch-py

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