Как исправить "KeyError: '*'" в эластичном поиске - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь реализовать эластичный поиск в своем проекте, но я получил эту ошибку, когда попытался запустить эту команду python manage.py index_orders

Я пытался изменить версиюasticsearch на последнюю (7.1.1) и запустите его.

Это мой командный класс, который я пытаюсь запустить

index_orders.py

class Command(BaseCommand):
    help = 'Indexes Orders in Elastic Search'

    def handle(self, *args, **options):
        es = Elasticsearch(
            [{'host': settings.ES_HOST, 'port': settings.ES_PORT}],
            index="order"
        )
        order_index = Index('order')
        order_index.doc_type(OrderDoc)
        if order_index.exists():
            order_index.delete()
            print('Deleted order index.')
        OrderDoc.init()
        result = bulk(
            client=es,
            actions=(order.indexing() for order in Order.objects.all().iterator())
        )
        print('Indexed orders.')
        print(result)

Этосообщение об ошибке

Traceback (most recent call last):
  File "manage.py", line 30, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 353, in execute
    output = self.handle(*args, **options)
  File "/app/blowhorn/order/management/commands/index_orders.py", line 26, in handle
    OrderDoc.init()
  File "/usr/local/lib/python3.6/site-packages/elasticsearch_dsl/document.py", line 138, in init
    i.save(using=using)
  File "/usr/local/lib/python3.6/site-packages/elasticsearch_dsl/index.py", line 289, in save
    current_settings = self.get_settings(using=using)[self._name]['settings']['index']
KeyError: '*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...