# -*- coding: utf-8 -*- # copyright 2016 LOGILAB S.A. (Paris, FRANCE), all rights reserved. # contact http://www.logilab.fr -- mailto:contact@logilab.fr # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 2.1 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. INDEXABLE_TYPES = None def index_settings(): return {'analysis': {'analyzer': {'default': {'filter': ['standard', 'my_ascii_folding', 'lowercase', 'french_snowball'], 'tokenizer': 'standard'}}, 'filter': {'my_ascii_folding': {'preserve_original': True, 'type': 'asciifolding'}, 'french_snowball': {'type': 'snowball', 'language': 'French'} } } } def indexable_types(schema): global INDEXABLE_TYPES if INDEXABLE_TYPES is not None: return INDEXABLE_TYPES indexable_types = [] skip_list = ('TrInfo', 'EmailAddress') for eschema in schema.entities(): if eschema.type in skip_list: continue if not eschema.final: # check eschema.fulltext_relations() ? (skip wf_info_for ? # ) if list(eschema.indexable_attributes()): indexable_types.append(eschema.type) INDEXABLE_TYPES = indexable_types return indexable_types