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)
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')
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)
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
+