From 2f1b4574ff25c806a284ee96f47ff3b56e58303a Mon Sep 17 00:00:00 2001 From: Artur Barseghyan Date: Mon, 21 Nov 2022 15:01:22 +0100 Subject: [PATCH 1/2] Allow custom field name in HighlightBackend Allow custom field name in `HighlightBackend`. ```python highlight_fields = { "body": {"enabled": True, "options": {"fragment_size": 50, "number_of_fragments": 1_000}}, "name": {"field": "name.text", "enabled": True, "options": {"fragment_size": 50, "number_of_fragments": 1_000}}, } ``` --- src/django_elasticsearch_dsl_drf/filter_backends/highlight.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py b/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py index d40a05db..927642de 100644 --- a/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py +++ b/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py @@ -124,6 +124,7 @@ def filter_queryset(self, request, queryset, view): highlight_fields = self.prepare_highlight_fields(view) for __field, __options in highlight_fields.items(): if __field in highlight_query_params or __options['enabled']: - queryset = queryset.highlight(__field, **__options['options']) + __field_name = __options.get("field", __field_name) + queryset = queryset.highlight(__field_name, **__options['options']) return queryset From 397e1875d3b75230b2e2e12d621086d14aab3fc6 Mon Sep 17 00:00:00 2001 From: Artur Barseghyan Date: Mon, 21 Nov 2022 15:08:51 +0100 Subject: [PATCH 2/2] Update highlight.py --- src/django_elasticsearch_dsl_drf/filter_backends/highlight.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py b/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py index 927642de..3fc6d783 100644 --- a/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py +++ b/src/django_elasticsearch_dsl_drf/filter_backends/highlight.py @@ -124,7 +124,7 @@ def filter_queryset(self, request, queryset, view): highlight_fields = self.prepare_highlight_fields(view) for __field, __options in highlight_fields.items(): if __field in highlight_query_params or __options['enabled']: - __field_name = __options.get("field", __field_name) + __field_name = __options.get("field", __field) queryset = queryset.highlight(__field_name, **__options['options']) return queryset