fos_elastica:
    clients:
        default: { host: localhost, port: 9200 }
    
    indexes:
        aef_items:
            client: default
            index_name: aef_items_%kernel.environment%
            settings:
                index:
                    number_of_replicas: 0
                    analysis:
                        analyzer:
                            # Analyseurs existants
                            french_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - french_stemmer
                            english_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - english_stemmer
                            # Nouveaux analyseurs multilingues
                            german_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - german_stemmer
                            spanish_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - spanish_stemmer
                            italian_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - italian_stemmer
                            portuguese_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - portuguese_stemmer
                            russian_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - russian_stemmer
                            dutch_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - dutch_stemmer
                            arabic_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - arabic_normalization
                                    - arabic_stemmer
                            chinese_analyzer:
                                type: custom
                                tokenizer: ik_max_word
                                filter:
                                    - lowercase
                            japanese_analyzer:
                                type: custom
                                tokenizer: kuromoji_tokenizer
                                filter:
                                    - kuromoji_baseform
                                    - kuromoji_part_of_speech
                                    - kuromoji_stemmer
                                    - lowercase
                            # Analyseur générique pour les autres langues
                            multilingual_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - stop
                        filter:
                            # Filtres existants
                            french_stemmer:
                                type: stemmer
                                language: french
                            english_stemmer:
                                type: stemmer
                                language: english
                            # Nouveaux filtres multilingues
                            german_stemmer:
                                type: stemmer
                                language: german
                            spanish_stemmer:
                                type: stemmer
                                language: spanish
                            italian_stemmer:
                                type: stemmer
                                language: italian
                            portuguese_stemmer:
                                type: stemmer
                                language: portuguese
                            russian_stemmer:
                                type: stemmer
                                language: russian
                            dutch_stemmer:
                                type: stemmer
                                language: dutch
                            arabic_stemmer:
                                type: stemmer
                                language: arabic
            properties:
                id:
                    type: integer
                title:
                    type: text
                    analyzer: french_analyzer
                    fields:
                        en:
                            type: text
                            analyzer: english_analyzer
                        de:
                            type: text
                            analyzer: german_analyzer
                        es:
                            type: text
                            analyzer: spanish_analyzer
                        it:
                            type: text
                            analyzer: italian_analyzer
                        pt:
                            type: text
                            analyzer: portuguese_analyzer
                        ru:
                            type: text
                            analyzer: russian_analyzer
                        nl:
                            type: text
                            analyzer: dutch_analyzer
                        ar:
                            type: text
                            analyzer: arabic_analyzer
                        zh:
                            type: text
                            analyzer: chinese_analyzer
                        ja:
                            type: text
                            analyzer: japanese_analyzer
                        generic:
                            type: text
                            analyzer: multilingual_analyzer
                description:
                    type: text
                    analyzer: french_analyzer
                    fields:
                        en:
                            type: text
                            analyzer: english_analyzer
                        de:
                            type: text
                            analyzer: german_analyzer
                        es:
                            type: text
                            analyzer: spanish_analyzer
                        it:
                            type: text
                            analyzer: italian_analyzer
                        pt:
                            type: text
                            analyzer: portuguese_analyzer
                        ru:
                            type: text
                            analyzer: russian_analyzer
                        nl:
                            type: text
                            analyzer: dutch_analyzer
                        ar:
                            type: text
                            analyzer: arabic_analyzer
                        zh:
                            type: text
                            analyzer: chinese_analyzer
                        ja:
                            type: text
                            analyzer: japanese_analyzer
                        generic:
                            type: text
                            analyzer: multilingual_analyzer
                price:
                    type: float
                status:
                    type: keyword
                created_at:
                    type: date
                updated_at:
                    type: date
                category:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: text
                            analyzer: french_analyzer
                            fields:
                                en:
                                    type: text
                                    analyzer: english_analyzer
                                de:
                                    type: text
                                    analyzer: german_analyzer
                                es:
                                    type: text
                                    analyzer: spanish_analyzer
                                it:
                                    type: text
                                    analyzer: italian_analyzer
                                pt:
                                    type: text
                                    analyzer: portuguese_analyzer
                                ru:
                                    type: text
                                    analyzer: russian_analyzer
                                nl:
                                    type: text
                                    analyzer: dutch_analyzer
                                ar:
                                    type: text
                                    analyzer: arabic_analyzer
                                zh:
                                    type: text
                                    analyzer: chinese_analyzer
                                ja:
                                    type: text
                                    analyzer: japanese_analyzer
                                generic:
                                    type: text
                                    analyzer: multilingual_analyzer
                member:
                    type: nested
                    properties:
                        id:
                            type: integer
                        business_name:
                            type: text
                            analyzer: french_analyzer
                        city:
                            type: keyword
                        region:
                            type: keyword
                        country:
                            type: keyword
                styles:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                periods:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                images:
                    type: nested
                    properties:
                        filename:
                            type: keyword
                        alt_text:
                            type: text
            persistence:
                driver: orm
                model: App\Entity\Item
                listener:
                    insert: false
                    update: false
                    delete: false
                finder: ~
        
        aef_members:
            client: default
            index_name: aef_members_%kernel.environment%
            settings:
                index:
                    number_of_replicas: 0
                    analysis:
                        analyzer:
                            # Analyseurs existants
                            french_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - french_stemmer
                            english_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - english_stemmer
                            # Nouveaux analyseurs multilingues
                            german_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - german_stemmer
                            spanish_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - spanish_stemmer
                            italian_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - italian_stemmer
                            portuguese_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - portuguese_stemmer
                            russian_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - russian_stemmer
                            dutch_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - dutch_stemmer
                            arabic_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - arabic_normalization
                                    - arabic_stemmer
                            chinese_analyzer:
                                type: custom
                                tokenizer: ik_max_word
                                filter:
                                    - lowercase
                            japanese_analyzer:
                                type: custom
                                tokenizer: kuromoji_tokenizer
                                filter:
                                    - kuromoji_baseform
                                    - kuromoji_part_of_speech
                                    - kuromoji_stemmer
                                    - lowercase
                            # Analyseur générique pour les autres langues
                            multilingual_analyzer:
                                type: custom
                                tokenizer: standard
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - stop
                        filter:
                            # Filtres existants
                            french_stemmer:
                                type: stemmer
                                language: french
                            english_stemmer:
                                type: stemmer
                                language: english
                            # Nouveaux filtres multilingues
                            german_stemmer:
                                type: stemmer
                                language: german
                            spanish_stemmer:
                                type: stemmer
                                language: spanish
                            italian_stemmer:
                                type: stemmer
                                language: italian
                            portuguese_stemmer:
                                type: stemmer
                                language: portuguese
                            russian_stemmer:
                                type: stemmer
                                language: russian
                            dutch_stemmer:
                                type: stemmer
                                language: dutch
                            arabic_stemmer:
                                type: stemmer
                                language: arabic
            properties:
                id:
                    type: integer
                business_name:
                    type: text
                    analyzer: french_analyzer
                    fields:
                        en:
                            type: text
                            analyzer: english_analyzer
                        de:
                            type: text
                            analyzer: german_analyzer
                        es:
                            type: text
                            analyzer: spanish_analyzer
                        it:
                            type: text
                            analyzer: italian_analyzer
                        pt:
                            type: text
                            analyzer: portuguese_analyzer
                        ru:
                            type: text
                            analyzer: russian_analyzer
                        nl:
                            type: text
                            analyzer: dutch_analyzer
                        ar:
                            type: text
                            analyzer: arabic_analyzer
                        zh:
                            type: text
                            analyzer: chinese_analyzer
                        ja:
                            type: text
                            analyzer: japanese_analyzer
                        generic:
                            type: text
                            analyzer: multilingual_analyzer
                first_name:
                    type: text
                    analyzer: standard
                last_name:
                    type: text
                    analyzer: standard
                description:
                    type: text
                    analyzer: french_analyzer
                    fields:
                        en:
                            type: text
                            analyzer: english_analyzer
                        de:
                            type: text
                            analyzer: german_analyzer
                        es:
                            type: text
                            analyzer: spanish_analyzer
                        it:
                            type: text
                            analyzer: italian_analyzer
                        pt:
                            type: text
                            analyzer: portuguese_analyzer
                        ru:
                            type: text
                            analyzer: russian_analyzer
                        nl:
                            type: text
                            analyzer: dutch_analyzer
                        ar:
                            type: text
                            analyzer: arabic_analyzer
                        zh:
                            type: text
                            analyzer: chinese_analyzer
                        ja:
                            type: text
                            analyzer: japanese_analyzer
                        generic:
                            type: text
                            analyzer: multilingual_analyzer
                subscription_plan:
                    type: keyword
                city:
                    type: keyword
                phone:
                    type: keyword
                created_at:
                    type: date
                updated_at:
                    type: date
                country:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                region:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                departement:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                specialties:
                    type: nested
                    properties:
                        id:
                            type: integer
                        name:
                            type: keyword
                items_count:
                    type: integer
            persistence:
                driver: orm
                model: App\Entity\Member
                listener:
                    insert: false
                    update: false
                    delete: false
                finder: ~ 