Open
Description
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
Labels
No labels