Exemple #1
0
        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(
Exemple #2
0
from elasticsearch_dsl import normalizer

normalizer("lowercase", type='lowercase')
Exemple #3
0
        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}
Exemple #4
0
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'
Exemple #5
0
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,
Exemple #6
0
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(),