name_analyzer_excluding_terms, tokenizer='standard', filter=[ 'lowercase', 'asciifolding', name_excluding_terms_filter, synonyms_only_filter, spanish_stopwords_filter ] ) lowcase_ascii_normalizer = normalizer( 'lowcase_ascii_normalizer', filter=[ 'lowercase', 'asciifolding' ] ) # ----------------------------------------------------------------------------- # Campos comunes # ----------------------------------------------------------------------------- IdField = Keyword() UnindexedTextField = Text(index=False) CentroidField = Object(
from elasticsearch_dsl import normalizer normalizer("lowercase", type='lowercase')
if not instance: return None if isinstance(instance, Source): return 'PublicSource' if self._public else 'FullSource' if isinstance(instance, Source_pages): return { 'name': 'PublicFolio' if self._public else 'FullFolio', 'parent': str(instance.source.id) } basic_normalizer = normalizer( 'basic_normalizer', type='custom', char_filter=[], filter=['lowercase', 'asciifolding'] ) dynamic_template = { 'standard_string_fields': { 'match_mapping_type': 'string', 'mapping': { 'type': 'keyword', 'normaliser': basic_normalizer } } } analysis = {'normalizer': basic_normalizer}
title_analyzer = analyzer( 'title_analyzer', tokenizer=tokenizer('trigram', 'nGram', min_gram=3, max_gram=4), filter=['lowercase', 'stop', 'trim', 'classic'], ) description_analyzer = analyzer( 'description_analyzer', tokenizer=tokenizer('standard'), filter=['lowercase', 'stop', 'trim', 'classic'], ) lowercase_normalizer = normalizer( 'lowercase_normalizer', filter=['lowercase'], ) class Film(Document): id = Keyword() title = Text(analyzer=title_analyzer) description = Text(analyzer=description_analyzer) category = Keyword(normalizer=lowercase_normalizer) length = Integer() rating = Keyword() actors = Keyword(multi=True, normalizer=lowercase_normalizer) class Index: name = 'film'
from elasticsearch_dsl import Document, Text, Keyword, normalizer, Index, Search from elasticsearch_dsl.query import MultiMatch, MatchPhrase, MatchAll from elasticsearch_dsl.utils import AttrList lowercase = normalizer('lowercaser', filter=['lowercase']) class Person(Document): name = Text(analyzer='snowball', copy_to='_all') languages = Keyword(normalizer=lowercase, fields={'raw': Keyword()}, copy_to='_all') web = Keyword(normalizer=lowercase, copy_to='_all', fields={'raw': Keyword()}) frameworks = Keyword(normalizer=lowercase, copy_to='_all', fields={'raw': Keyword()}) databases = Keyword(normalizer=lowercase, fields={'raw': Keyword()}, copy_to='_all') platforms = Keyword(normalizer=lowercase, fields={'raw': Keyword()}, copy_to='_all') buildtools = Keyword(normalizer=lowercase, fields={'raw': Keyword()}, copy_to='_all') editor = Keyword(normalizer=lowercase, fields={'raw': Keyword()}, copy_to='_all') os = Keyword(normalizer=lowercase,
from .models import University from django_countries.fields import CountryField # Formatting of Django Country field to Object field of Elasticsearch CountryField.to_dict = lambda self: {"code": self.code, "name": self.name} # Name of the Elasticsearch index UNIVERSITY_INDEX = Index('university') # Elasticsearch Indices settings UNIVERSITY_INDEX.settings(number_of_shards=1, number_of_replicas=1) # Normalizer for keyword fields keyword_normalizer = normalizer( 'keyword_normalizer', type="custom", filter=["lowercase"], ) @UNIVERSITY_INDEX.doc_type class UniversityDocument(Document): """University Elasticsearch document.""" id = fields.IntegerField(attr='id') name = fields.TextField(fields={ 'raw': fields.KeywordField(normalizer=keyword_normalizer), }, ) domain = fields.TextField( fields={'raw': fields.KeywordField(normalizer=keyword_normalizer)})
ResourcePlace, ResourceRelationship, Title, ) from radical_translations.utils.documents import ( get_agent_field, get_controlled_term_field, get_place_field, get_resource_field, ) from radical_translations.utils.models import Date text_folding_analyzer = analyzer("folding", tokenizer="standard", filter=["lowercase", "asciifolding"]) lowercase_sort_normalizer = normalizer("lowercase_sort", filter=["lowercase", "asciifolding"]) copy_to_content = {"copy_to": "content"} @registry.register_document class ResourceDocument(Document): meta = fields.KeywordField() content = fields.TextField(attr="title.main_title", store=True) is_private = fields.BooleanField() title = fields.TextField( analyzer=text_folding_analyzer, fields={ "raw": fields.KeywordField(),