Django-elasticsearch-dsl не возвращает все записи, соответствующие условию запроса

Я пишу сайт на Django. Я разрабатываю систему поиска по сайту, используя django-elasticsearch-dsl. Но я заметил проблему, что не все записи, удовлетворяющие условию поиска, отображаются.

Например, я знаю, что в моей базе данных есть 6 книг, содержащих слово 'Python', но когда я использую команду

books = BookDocument.search().query('match', title='Python')

django-elasticsearch-dsl дает мне только 3 записи

books = BookDocument.search().query('match', title='Python')
for i in books:
    print(i.title)

||||||||||||| 

Укус Python
Програмуємо на Python
Django:Практика створення Web-сайтів на Python

Остальные 3 не отображаются

Вот мой класс BookDocument:

@registry.register_document
class BookDocument(Document):
    """
    Індексація таблиці БД Book для Elasticsearch-пошуку
    Згідно із документацією django-elasticsearch-dsl
    https://django-elasticsearch-dsl.readthedocs.io/en/latest/fields.html
    """
    image = FileField()
    category = ObjectField(properties={
        'title': TextField(),
        'pk': IntegerField()
    })
    authors = NestedField(properties={
        'pk': IntegerField(),
        'name': TextField()
    })

    class Index:
        name = 'book'
        settings = {
            'number_of_shards': 1,
            'number_of_replicas': 0
        }

    class Django:
        model = Book

        fields = [
            'id',
            'title',
            'description',
        ]
        related_models = [Category, Author]

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, Category):
            return related_instance.book_set.all()
        if isinstance(related_instance, Author):
            return related_instance.book_set.all()

Возможно, кто-то уже сталкивался с этим и знает, как это исправить

Вернуться на верх