From 8d6fc2c4b63c81c9f984e0597c219c139db4a1eb Mon Sep 17 00:00:00 2001 From: vrigal <rigal@teklia.com> Date: Mon, 2 Dec 2019 15:19:33 +0100 Subject: [PATCH] Search indexed structural metadata --- arkindex/documents/api/search.py | 7 +++++++ arkindex/documents/serializers/search.py | 1 + 2 files changed, 8 insertions(+) diff --git a/arkindex/documents/api/search.py b/arkindex/documents/api/search.py index 5ef8b4bc4d..4860f73c67 100644 --- a/arkindex/documents/api/search.py +++ b/arkindex/documents/api/search.py @@ -31,6 +31,7 @@ class ElementSearch(SearchAPIView): query=None, element_type=None, transcription_type=None, + structural_metadata=None, date_lt=None, date_gte=None, min_score=0.0): @@ -52,6 +53,12 @@ class ElementSearch(SearchAPIView): search = search.filter('range', date_range=date_range) + if structural_metadata: + search = search.filter( + 'wildcard', + structure='*{}*'.format(structural_metadata) + ) + if element_type: search = search.filter('match', type=element_type) diff --git a/arkindex/documents/serializers/search.py b/arkindex/documents/serializers/search.py index e49aa1768f..1520225f32 100644 --- a/arkindex/documents/serializers/search.py +++ b/arkindex/documents/serializers/search.py @@ -20,6 +20,7 @@ class SearchQuerySerializer(serializers.Serializer): score = serializers.FloatField(source='min_score', min_value=0.0, max_value=1.0, default=0.0) date_gte = serializers.CharField(default=None) date_lte = serializers.CharField(source='date_lt', default=None) + structural_metadata = serializers.CharField(default=None) element_type = serializers.SlugField(default=None) transcription_type = EnumField(enum=TranscriptionType, default=None) corpus = serializers.UUIDField(source='corpus_id', default=None) -- GitLab