From: mathieu Date: Thu, 21 Apr 2016 08:49:51 +0000 (+0200) Subject: Simplify index and settings X-Git-Tag: 1.6.2^2~15^2~8^2~8 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=4e929d826da44bccf37ec37e4b935e486e605160;p=telemeta.git Simplify index and settings Former-commit-id: 0e6442202c996e754c09a234b2c62807182a203d --- 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 +