From 4e929d826da44bccf37ec37e4b935e486e605160 Mon Sep 17 00:00:00 2001 From: mathieu Date: Thu, 21 Apr 2016 10:49:51 +0200 Subject: [PATCH] Simplify index and settings Former-commit-id: 0e6442202c996e754c09a234b2c62807182a203d --- telemeta/search_indexes.py | 7 ++----- telemeta/util/backend.py | 17 +++++++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/telemeta/search_indexes.py b/telemeta/search_indexes.py index b54084b3..ff8d4df5 100644 --- a/telemeta/search_indexes.py +++ b/telemeta/search_indexes.py @@ -20,9 +20,6 @@ from haystack import indexes from telemeta.models import * -class InstrumentField(indexes.CharField): - field_type = 'instrument' - class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) @@ -40,7 +37,7 @@ class MediaItemIndex(indexes.SearchIndex, indexes.Indexable): location_principal = indexes.CharField(null='None', boost=1.05) location_relation = indexes.CharField() ethnic_group = indexes.CharField(model_attr='ethnic_group', default='') - instruments = InstrumentField(default='') + instruments = indexes.CharField(default='') collectors = indexes.CharField(model_attr='collector', default='') recorded_from_date = indexes.DateField(model_attr='recorded_from_date', null='None') recorded_to_date = indexes.DateField(model_attr='recorded_to_date', null='None') @@ -111,7 +108,7 @@ class MediaCollectionIndex(indexes.SearchIndex, indexes.Indexable): location_principal = indexes.CharField(default='', boost=1.05) location_relation = indexes.CharField() ethnic_group = indexes.CharField(default='') - instruments = InstrumentField(default='') + instruments = indexes.CharField(default='') collectors = indexes.CharField(model_attr='collector', default='') recorded_from_date = indexes.DateField(model_attr='recorded_from_year', null=True) recorded_to_date = indexes.DateField(model_attr='recorded_to_year', null=True) diff --git a/telemeta/util/backend.py b/telemeta/util/backend.py index 0d241690..13ffd47a 100644 --- a/telemeta/util/backend.py +++ b/telemeta/util/backend.py @@ -5,15 +5,20 @@ class CustomElasticBackend(ElasticsearchSearchBackend): def setup(self): DEFAULT_FIELD_MAPPING['analyzer']='trim_lower_analyzer' - FIELD_MAPPINGS['instrument']={'type':'string', 'analyzer':'pipe_analyzer', 'search_analyzer': 'trim_lower_analyzer'} eb = super(CustomElasticBackend, self) - eb.DEFAULT_SETTINGS.get('settings').get('analysis').get('tokenizer')['pipe_tokenizer']=\ - {'type': 'pattern', 'pattern': '\\|'} eb.DEFAULT_SETTINGS.get('settings').get('analysis').get('analyzer')['trim_lower_analyzer']=\ {"type": "custom", "tokenizer": "keyword", "filter": ["trim", "lowercase", "asciifolding"]} - eb.DEFAULT_SETTINGS.get('settings').get('analysis').get('analyzer')['pipe_analyzer']=\ - {'type':'custom', 'tokenizer': 'pipe_tokenizer', 'filter': ['trim', 'lowercase', 'asciifolding']} eb.setup() -class CustomElasticEngine(ElasticsearchSearchEngine): +class CustomElasticSearchQuery(ElasticsearchSearchQuery): + + def build_query_fragment(self, field, filter_type, value): + print(field, ' ', filter_type, ' ', value) + valeur = super(CustomElasticSearchQuery, self).build_query_fragment(field, filter_type, value) + print(valeur) + return valeur + +class CustomElasticEngine(ElasticsearchSearchEngine):# backend = CustomElasticBackend + query = CustomElasticSearchQuery + -- 2.39.5