Skip to content

Nested objects are empty with elasticseartch-dsl 8.18 #1975

Open
@debnet

Description

@debnet

When using django-elasticsearch-dsl with latest version of elasticsearch-dsl (8.18) and reindexing my database from scratch, my nested fields are all set with the correct number of items but all empties whereas it was working fine with previous version (8.17.1).

Here my (very-)simplified document:

@registry.register_document
class CompanyDocument(Document):
    type = fields.KeywordField()
    name = fields.TextField(
        analyzer=text_analyzer,
        fields={
            "raw": fields.KeywordField(),
            "suggest": fields.CompletionField(),
        },
    )
    activities = fields.NestedField(
        multi=True,
        attr="startup.all_activities",
        properties=dict(
            id=fields.IntegerField(attr="base_id"),
            name=fields.TextField(),
            desc=fields.TextField(),
        ),
    )

    class Index:
        name = "companies"

    class Django:
        model = Company
        fields = [
            "type",
            "name",
        ]
        queryset_pagination = 1000

    def get_queryset(self):
        return (
            super()
            .get_queryset()
            .prefetch_related(
                Prefetch(
                    "startup__activities",
                    queryset=StartupActivity.objects.annotate(
                        base_id=F("activity_id"),
                        name=F("activity__name"),
                        desc=F("activity__desc"),
                    ).order_by("-weight", "name"),
                    to_attr="all_activities",
                )
            )
        )

When I query a single document, I have the following result:

{
  "_index": "companies",
  "_id": "1",
  "_version": 1,
  "_seq_no": 0,
  "_primary_term": 1,
  "found": true,
  "_source": {
    "type": "startup",
    "name": "My Startup",
    "activities": [
      {},
      {},
      {}
    ]
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions