Не могу синхронизировать c существующие данные из базы данныхasticsearch на Django веб-сервер - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть данные в базе данныхasticsearch, и я хочу показать эти данные, используя Django framework. Я могу добавлять и удалять документы вручную, но не могу синхронизировать c существующие данные.

Я следовал этому руководству: https://django-elasticsearch-dsl-drf.readthedocs.io/en/latest/quick_start.html#syncing - django -s-database-with -asticsearch- индексы , но все еще не могу увидеть существующие данные, которые у меня есть наasticsearch

Я пытаюсь синхронизировать c один индекс с именем "dnmavengerss"

, это мой скрипт models.py :

from django.db import models
from six import python_2_unicode_compatible


class Avatar(models.Model):
    avatar_name = models.CharField(max_length=256)
    avatar_pass = models.CharField(max_length=256)
    avatar_user = models.CharField(max_length=256)
    avatar_email = models.CharField(max_length=48)


class Comments(models.Model):
    joined_date = models.CharField(max_length=12)
    comment_date = models.CharField(max_length=12)
    comment_body = models.TextField()
    user_link = models.CharField(max_length=256)
    post_count = models.CharField(max_length=8)
    user_name = models.CharField(max_length=256)


@python_2_unicode_compatible
class Dnmavengers(models.Model):
    crawl_date = models.CharField(max_length=12)
    views = models.CharField(max_length=8)
    replies = models.CharField(max_length=8)
    title = models.CharField(max_length=256)
    comments = models.ForeignKey('Comments', related_name='all_comments')
    link = models.CharField(max_length=256)
    forum_title = models.CharField(max_length=256)
    avatar_details = models.ForeignKey('Avatar')

    class Meta(object):
        """Meta options."""
        ordering = ["id"]



это мой скрипт documents.py:

from django_elasticsearch_dsl import Document, fields, Index
from elasticsearch_dsl import analyzer
from .models import Dnmavengers

INDEX = Index('dnmavengerss')

# See Elasticsearch Indices API reference for available settings
INDEX.settings(
    number_of_shards=1,
    number_of_replicas=1
)

html_strip = analyzer(
    'html_strip',
    tokenizer="standard",
    filter=["standard", "lowercase", "stop", "snowball"],
    char_filter=["html_strip"]
)

# @registry.register_document
@INDEX.doc_type
class DnmavengersDocument(Document):
    """Dnmavengers Elasticsearch document."""

    id = fields.IntegerField(attr='id')

    crawl_date = fields.TextField()
    views = fields.TextField()
    replies = fields.TextField()
    title = fields.TextField()

    all_comments = fields.NestedField(properties={
        'joined_date': fields.TextField(),
        'comment_date': fields.TextField(),
        'comment_body': fields.TextField(analyzer=html_strip),
        'user_link': fields.TextField(),
        'post_count': fields.TextField(),
        'user_name': fields.TextField(),
    })

    link = fields.TextField()
    forum_title = fields.TextField()

    avatar_details = fields.ObjectField(properties={
        'avatar_name': fields.TextField(),
        'avatar_pass': fields.TextField(),
        'avatar_user': fields.TextField(),
        'avatar_email': fields.TextField(),
    })

    class Django(object):
        """Inner nested class Django."""
        model = Dnmavengers  # The model associate with this Document


...