Ejemplo n.º 1
0
 /// <inheritdoc cref="IIndexConfigurator.Configure" />
 public CreateIndexDescriptor Configure(CreateIndexDescriptor descriptor)
 {
     return(descriptor.Analysis(y => y
                                .Analyzers(z => z
                                           /* Code : aucun traitement. */
                                           .Add("code", new CustomAnalyzer("code")
     {
         Tokenizer = "keyword",
         Filter = new List <string> {
             "standard"
         }
     })
                                           /* Texte français pour la recherche : normalisé et découpé. */
                                           .Add("text_fr", new CustomAnalyzer("text_fr")
     {
         Tokenizer = "pattern",
         Filter = new List <string> {
             "standard", "lowercase", "asciifolding"
         }
     })
                                           /* Tri : normalisé pas mais pas découpé. */
                                           .Add("sort", new CustomAnalyzer("sort")
     {
         Tokenizer = "keyword",
         Filter = new List <string> {
             "standard", "lowercase", "asciifolding"
         }
     }))
                                .Tokenizers(w => w
                                            .Add("keyword", new KeywordTokenizer())
                                            .Add("pattern", new PatternTokenizer {
         Pattern = @"([^\p{L}\d^&^-^.]+)"
     }))));
 }
        private CreateIndexDescriptor AddCategoryAnalyzers(CreateIndexDescriptor descriptor)
        {
            var autoComplete = new CustomAnalyzer
            {
                Filter = new List <string> {
                    "lowercase", "asciifolding", "autocomplete_filter"
                },
                Tokenizer = "standard"
            };

            var autoCompleteNative = new CustomAnalyzer
            {
                Filter = new List <string> {
                    "lowercase", "autocomplete_filter"
                },
                Tokenizer = "standard"
            };

            descriptor.Analysis(x => x
                                .TokenFilters(f => f
                                              .Add("autocomplete_filter", new EdgeNGramTokenFilter {
                MaxGram = 20, MinGram = 1
            }))
                                .Analyzers(a => a
                                           .Add("autocomplete", autoComplete)
                                           .Add("autocompletenative", autoCompleteNative)));

            return(descriptor);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Create index
        /// </summary>
        /// <typeparam name="T">Index type</typeparam>
        /// <param name="index">Index name</param>
        /// <param name="numberOfShards">Number of shards</param>
        /// <param name="numberOfReplicas">Number of replicas</param>
        /// <param name="force">Force</param>
        /// <param name="languageCode">Language Code Enum</param>
        ///
        public bool CreateIndex <T>(string index, int numberOfShards, int numberOfReplicas, bool force = false, LanguageCode languageCode = LanguageCode.EN)
            where T : class
        {
            var descriptor = new CreateIndexDescriptor(_connectionSettings);

            descriptor.NumberOfShards(numberOfShards);
            descriptor.NumberOfReplicas(numberOfReplicas);

            var analysis = _analysisResolver.Resolve <T>(languageCode);

            if (analysis != null)
            {
                descriptor.Analysis(a => analysis);
            }

            // Add any custom analyzers
            _analyzerResolver = new ElasticsearchAnalyzerResolver();
            if (_analysisResolver != null)
            {
                descriptor = _analyzerResolver.Resolve <T>(descriptor);
            }

            var mapping = _mappingResolver.Resolve <T>(_connectionSettings);

            if (mapping != null)
            {
                descriptor.AddMapping <T>(m => mapping);
            }

            var success = CreateIndex(index, descriptor, force);

            return(success);
        }
Ejemplo n.º 4
0
        public CreateIndexDescriptor CreateIndex(CreateIndexDescriptor idx)
        {
            var keywordLowercaseAnalyzer = new CustomAnalyzer {
                Filter = new List <string> {
                    "lowercase"
                }, Tokenizer = "keyword"
            };

            return(idx.Analysis(descriptor => descriptor.Analyzers(bases => bases.Add(KEYWORD_LOWERCASE, keywordLowercaseAnalyzer)))
                   .AddMapping <Application>(GetApplicationMap)
                   .AddMapping <Organization>(GetOrganizationMap)
                   .AddMapping <Project>(GetProjectMap)
                   .AddMapping <Models.Token>(GetTokenMap)
                   .AddMapping <User>(GetUserMap)
                   .AddMapping <WebHook>(GetWebHookMap));
        }
Ejemplo n.º 5
0
        public override CreateIndexDescriptor ConfigureDescriptor(CreateIndexDescriptor idx)
        {
            idx = base.ConfigureDescriptor(idx);
            idx.NumberOfShards(3);

            var keywordLowercase = new CustomAnalyzer {
                Filter = new List <string> {
                    "lowercase"
                },
                Tokenizer = "keyword"
            };

            idx
            .Analysis(descriptor => descriptor
                      .Analyzers(bases => bases
                                 .Add("keyword_lowercase", keywordLowercase)
                                 )
                      );

            return(idx);
        }
Ejemplo n.º 6
0
 public sealed override void ContributeCore(CreateIndexDescriptor descriptor, IElasticClient client)
 {
     descriptor.Analysis(ContributeCore);
 }