Почему мой запрос Elasticsearch не показывает результатов?Python

Программы на Python
Anonymous
Почему мой запрос Elasticsearch не показывает результатов?

Сообщение Anonymous »

Я закрепил проект Django. Я хочу использовать Elasticsearch, поэтому выбрал django-elasticsearch-dsl. Мои действия были следующими:
  • В файле настроек моего проекта Django (

    Код: Выделить всё

    settings.py
    ), я настроил параметры подключения Elasticsearch.

Код: Выделить всё

ELASTICSEARCH_DSL = {
'default': {
'hosts': ["http://localhost:9200"],
},
}
  • Создал файл с именем document.py в своем приложении Django. В этом файле я определил документы Elasticsearch, соответствующие моим моделям Django.

Код: Выделить всё

from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry

from .models import Filmwork

@registry.register_document
class FilmWorkDocument(Document):
class Index:
name = 'film'
settings = {'number_of_shards': 1, 'number_of_replicas': 0}

class Django:
model = Filmwork
fields = ['title', 'description']
  • Поэтому я проиндексировал данные из моей модели Django в Elasticsearch с помощью команды python3 Manage.py search_index --rebuild. Я использовал эту команду вне докера, она показала:

Код: Выделить всё

File "/Users/ArtemBoss/Desktop/artem_yandex_repo/venv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not translate host name "database" to address: nodename nor servname provided, or not known
В то же время, когда я пытаюсь индексировать данные внутри контейнера django, он показывает:

Код: Выделить всё

File "/usr/local/lib/python3.10/site-packages/elastic_transport/_node/_http_urllib3.py", line 202, in perform_request
raise err from None
elastic_transport.ConnectionError: Connection error caused by: ConnectionError(Connection error caused by: NewConnectionError(: Failed to establish a new connection: [Errno 111] Connection refused))
В любом случае индекс был успешно создан, но когда я отправляю запрос http://localhost:9200/film, он не показывает совпадений, как будто нет документов:

Код: Выделить всё

{"film":{"aliases":{},"mappings":{"properties":{"description":{"type":"text"},"title":{"type":"text"}}},"settings":{"index":{"routing":{"allocation":{"include":{"_tier_preference":"data_content"}}},"number_of_shards":"1","provided_name":"film","creation_date":"1714573697677","number_of_replicas":"0","uuid":"wtFsSoZUSXC73s5ScCbc2w","version":{"created":"8503000"}}}}}
В чем проблема?

Подробнее здесь: https://stackoverflow.com/questions/784 ... w-any-hits

Вернуться в «Python»