Как сгенерировать Query Set как представление django, используяasticsearch-dsl для модели или набора моделей - PullRequest
0 голосов
/ 04 января 2019

Я используюasticsearch-dsl для поиска (включая полнотекстовый поиск) полей в моей модели. Я был в состоянии сделать модель индекса (это может быть неправильный способ выразить это) для моделей. Я использовал пример parent-child, приведенный в исходном коде gitubasticsearch-dsl здесь .

Вот так выглядят мои модели:

app_1 / models.py

class User(AbstractBaseUser):
    email=models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,)
    username_validator = UnicodeUsernameValidator()

    username = models.CharField(max_lenght=50)
    first_name=models.CharField(max_length=45)
    last_name=models.CharField(max_length=45)
    gender = models.CharField(max_length=7)


class UserDetails(models.Model):
    user=models.OneToOneField('User',on_delete=models.CASCADE)
    date_of_birth=models.DateField()
    street_name=models.CharField(max_length=55)
    town=models.CharField(max_length=45)
    country = CountryField()

app_2 / model.py

class Question(models.Model):
    user=models.ForeignKey('User',on_delete=models.CASCADE)
    question=models.TextField(max_length=400)
    answers=models.ManyToManyField('Answer',related_name='question_answers')
    upvote=models.IntegerField()

    ...

Моя модель Elasticsearch-dsl для была очень похожа на пример parent-child, рассмотренный выше из исходного кода github. Вот как это выглядит;

class Comment(InnerDoc):
    """
    Class wrapper for nested comment objects.
    """
    author = Object(User, required=True)
    created = Date(required=True)
    content = Text(required=True)

class Post(Document):
    """
    Base class for Question and Answer containing the common fields.
    """
    author = Object(User, required=True)
    created = Date(required=True)
    body = Text(required=True)
    comments = Nested(Comment)
    question_answer = Join(relations={'question': 'answer'})

    ...

Прошу прощения за неправильные отступы.

Как можно написать представление, которое принимает входные данные поиска, представленные пользователем, и генерирует набор запросов (эластичный поисковый запрос) для всех полей моих моделей в разных приложениях?

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