Example #1
0
 static IPromise <IIndexSettings> CommonIndexDescriptor(IndexSettingsDescriptor descriptor)
 {
     return(descriptor
            .NumberOfReplicas(1)
            .NumberOfShards(1)
            .Analysis(InitCommonAnalyzers));
 }
Example #2
0
 public IPromise <IIndexSettings> ConfigureConcatenateAndAutocompleteSettings(IndexSettingsDescriptor setting)
 {
     return(setting
            .NumberOfShards(_numberOfShards)
            .NumberOfReplicas(_numberOfReplicas)
            .Analysis(analysis => ConfigureConcatenateAndAutocompleteAnalysis(analysis))
            .Setting("index.gc_deletes", "1h")); // 1 hour
 }
Example #3
0
        protected virtual IndexSettingsDescriptor ConfigureIndexSettings(IndexSettingsDescriptor settings, string documentType)
        {
            // https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#mapping-limit-settings
            var fieldsLimit = GetFieldsLimit();

            return(settings
                   .Setting("index.mapping.total_fields.limit", fieldsLimit)
                   .Analysis(a => a
                             .TokenFilters(tokenFilters => ConfigureTokenFilters(tokenFilters, documentType))
                             .Analyzers(analyzers => ConfigureAnalyzers(analyzers, documentType))));
        }
Example #4
0
        private IndexSettingsDescriptor applyIndexSettings(IndexSettingsDescriptor s)
        {
            s = s.NumberOfReplicas(configuration.NumberOfReplicas)
                .NumberOfShards(configuration.NumberOfShards)
                .RefreshInterval(configuration.RefreshInterval);

            if (!string.IsNullOrWhiteSpace(configuration.DefaultPipeline))
            {
                s = s.DefaultPipeline(configuration.DefaultPipeline);
            }

            return(s);
        }
Example #5
0
 public static IPromise <IIndexSettings> AnalysisSettings(IndexSettingsDescriptor settings) => settings
 .Analysis(analysis => analysis
           .TokenFilters(filters => filters
                         .Stop("stop", stop => stop.StopWords("_english_", "_russian_"))
                         .Stemmer("english_stemmer", stemmer => stemmer.Language("english"))
                         .Stemmer("english_possessive_stemmer", stemmer => stemmer.Language("possessive_english"))
                         .Stemmer("russian_stemmer", stemmer => stemmer.Language("russian"))
                         )
           .Analyzers(analyzers => analyzers
                      .Custom("english_russian", analyzer => analyzer
                              .Tokenizer("standard")
                              .Filters("lowercase", "stop", "english_stemmer", "english_possessive_stemmer", "russian_stemmer")
                              )
                      )
           );
Example #6
0
 private IPromise <IndexSettings> GetSetting(IndexSettingsDescriptor setting) =>
 setting.Analysis(a => a
                  .Analyzers(azs => azs.Custom(NameAnalyzer, c => c.Tokenizer(NameTokenizer).Filters("lowercase")))
                  .Tokenizers(t => t.EdgeNGram(NameTokenizer, ng => ng.MinGram(3).MaxGram(20).TokenChars(new[] { TokenChar.Letter }))));
Example #7
0
        private static IndexSettingsDescriptor GetIndexSettings()
        {
            #region TokenFilters

            //We add the danish stop word and stemmer filters.
            var tokenFilters = new Dictionary <string, ITokenFilter>
            {
                {
                    "english_stop",
                    new StopTokenFilter
                    {
                        StopWords = "_english_"
                    }
                },
                {
                    "english_snow",
                    new SnowballTokenFilter()
                    {
                        Language = SnowballLanguage.English
                    }
                },
            };

            #endregion

            #region Analyzers

            //We create a custom analyzer to use in the index
            var analyzers = new Dictionary <string, IAnalyzer>
            {
                {
                    "english",
                    new CustomAnalyzer
                    {
                        CharFilter = new[] { "html_strip" },
                        Filter     = new [] { "lowercase", "english_stop", "english_snow", "asciifolding" },
                        Tokenizer  = "standard"
                    }
                },
                {
                    "default",
                    new CustomAnalyzer
                    {
                        CharFilter = new[] { "html_strip" },
                        Filter     = new[] { "lowercase", "asciifolding" },
                        Tokenizer  = "standard"
                    }
                }
            };

            #endregion

            var indexSettings = new IndexSettingsDescriptor();

            indexSettings.NumberOfShards(1);
            indexSettings.NumberOfReplicas(0);
            indexSettings.Analysis(d => new Analysis
            {
                TokenFilters = new TokenFilters(tokenFilters),
                Analyzers    = new Analyzers(analyzers)
            });
            return(indexSettings);
        }
 private IPromise <IIndexSettings> CreateSettings(IndexSettingsDescriptor settingsDescriptor)
 {
     return(settingsDescriptor
            .Setting("max_ngram_diff", 7)
            .Analysis(CreateAnalysis));
 }
Example #9
0
 public IPromise <IIndexSettings> ConfigureIndexSettings(IndexSettingsDescriptor indexSettingsDescriptor)
 {
     return(indexSettingsDescriptor.Analysis(an => an
                                             .CreateRemoveNumbersCharFilters()
                                             .CreateRemoveNumbersNormalizer()));
 }
Example #10
0
 public IPromise <IIndexSettings> ConfigureNonConcatenateAndAutocompleteSettings(IndexSettingsDescriptor setting)
 {
     return(setting
            .NumberOfShards(_numberOfShards)
            .NumberOfReplicas(_numberOfReplicas)
            .Setting("index.max_ngram_diff", int.MaxValue)
            .Setting("index.gc_deletes", "1h")); // 1 hour
 }
 private static IPromise <IIndexSettings> SetupSetting(IndexSettingsDescriptor indexSettings)
 {
     return(indexSettings
            .Setting("max_ngram_diff", 7)
            .Analysis(SetupAnalysis));
 }