public static AnalyzersDescriptor AddAutoCompleteShingleAnalyzer(this AnalyzersDescriptor ad)
 {
     return(ad.Custom(ElasticAnalyzers.AutoCompleteShingle, ang => ang
                      .Tokenizer(ElasticTokenizers.Lowercase)
                      .Filters(ElasticFilters.Lowercase, ElasticFilters.AsciiFolding, ElasticFilters.AutocompleteShingle)
                      ));
 }
        public static AnalyzersDescriptor AddTaxonomyAnalyzers(this AnalyzersDescriptor ad, IEnumerable <MetadataProperty> metadataProperties)
        {
            foreach (var metadataProperty in metadataProperties)
            {
                if (metadataProperty == null || !metadataProperty.Properties.ContainsKey(Strings.Taxonomy))
                {
                    continue;
                }

                // TODO SL: remove unused
                IDictionary <TaxonomyResultDTO, IList <TaxonomyResultDTO> > dictionary = TaxonomyTransformer.BuildFlatDictionary(metadataProperty.Properties[Strings.Taxonomy]);

                var taxonomyTextKey       = metadataProperty.Key.GetPreparedAnalyzerName(ElasticAnalyzers.TaxonomyTextPrefix);
                var taxonomyTextSearchKey = metadataProperty.Key.GetPreparedAnalyzerName(ElasticAnalyzers.TaxonomyTextSearchPrefix);

                string autoPhraseKey = metadataProperty.Key.GetPreparedAnalyzerName(ElasticFilters.AutoPhrasePrefix);
                string vocabularyKey = metadataProperty.Key.GetPreparedAnalyzerName(ElasticFilters.VocabularyPrefix);

                ad.AddStandardTokenizerFilter(taxonomyTextKey, ElasticFilters.Lowercase, autoPhraseKey, vocabularyKey);
                ad.AddStandardTokenizerFilter(taxonomyTextKey + "_ngram", ElasticFilters.Lowercase, autoPhraseKey, vocabularyKey, ElasticFilters.Ngram);
                ad.AddStandardTokenizerFilter(taxonomyTextKey + "_exact_taxo", ElasticFilters.Lowercase, autoPhraseKey, vocabularyKey, ElasticFilters.FilterWordDelimiter, ElasticFilters.Ngram);
                ad.AddStandardTokenizerFilter(taxonomyTextSearchKey, ElasticFilters.Lowercase, autoPhraseKey);
            }
            return(ad);
        }
 public static AnalyzersDescriptor AddDymTrigramAnalyzer(this AnalyzersDescriptor ad)
 {
     return(ad.Custom(ElasticAnalyzers.DidYouMeanTrigram, ang => ang
                      .Tokenizer(ElasticTokenizers.Standard)
                      .Filters(ElasticFilters.Lowercase, ElasticFilters.AsciiFolding, ElasticFilters.AutocompleteShingle)
                      ));
 }
コード例 #4
0
 private static IPromise <IAnalyzers> CreateAnalyzers(AnalyzersDescriptor analyzersDescriptor)
 {
     return(analyzersDescriptor
            .Custom(Analyzers.NgramAnalyzer, custom => custom
                    .Tokenizer("standard")
                    .Filters("lowercase", TokenFilters.NgramFilter)));
 }
コード例 #5
0
 private static IPromise <IAnalyzers> SetupAnalyzer(AnalyzersDescriptor analyzersDescriptor)
 {
     return(analyzersDescriptor.Custom(Analyzer.CustomAnalyzer,
                                       s => s
                                       .Tokenizer(TokenFilter.Standard)
                                       .Filters(TokenFilter.LowerCase,
                                                TokenFilter.WordDelimiter,
                                                TokenFilter.EnglishStopWords,
                                                TokenFilter.NGram)));
 }
コード例 #6
0
        private AnalyzersDescriptor CreateAnalyzersDescriptor(int shingleCount, string tokenizer, string charHtmlFilter, TokenFiltersDescriptor tokenFilters)
        {
            var analyzers = new AnalyzersDescriptor();

            for (var i = 1; i <= shingleCount; i++)
            {
                var actualIndex = i;

                var filterName = string.Format("{0}{1}", _filterPrefix, actualIndex);
                if (i != 1)
                {
                    var filterDescriptor =
                        new ShingleTokenFilterDescriptor().MinShingleSize(actualIndex)
                        .MaxShingleSize(actualIndex)
                        .OutputUnigrams(false)
                        .OutputUnigramsIfNoShingles(false);
                    tokenFilters.Shingle(filterName, desc => filterDescriptor);
                }

                var analyzerName = string.Format("{0}{1}", _analyzerPrefix, actualIndex);
                var analyzer     =
                    i != 1
                        ? new CustomAnalyzer
                {
                    Filter = new List <string> {
                        "lowercase", "word_filter", filterName, "filler_filter"
                    },
                    Tokenizer  = tokenizer,
                    CharFilter = new List <string> {
                        charHtmlFilter
                    }
                }
                        : new CustomAnalyzer {
                    Filter = new List <string> {
                        "lowercase", "word_filter", "filler_filter"
                    }, Tokenizer = tokenizer, CharFilter = new List <string> {
                        charHtmlFilter
                    }
                };
                analyzers.Custom(analyzerName, a => analyzer);
            }

            return(analyzers);
        }
コード例 #7
0
        private static AnalysisDescriptor CreateAnalysisDescriptor(string charHtmlFilter, TokenFiltersDescriptor tokenFilters, AnalyzersDescriptor analyzers)
        {
            var analysisDescriptor = new AnalysisDescriptor();

            analysisDescriptor.CharFilters(c => c.HtmlStrip(charHtmlFilter));
            analysisDescriptor.TokenFilters(t => tokenFilters);
            analysisDescriptor.Analyzers(a => analyzers);
            return(analysisDescriptor);
        }
コード例 #8
0
 protected virtual AnalyzersDescriptor ConfigureAnalyzers(AnalyzersDescriptor analyzers, string documentType)
 {
     return(analyzers
            .Custom(SearchableFieldAnalyzerName, customAnalyzer => ConfigureSearchableFieldAnalyzer(customAnalyzer, documentType)));
 }
 public static AnalyzersDescriptor AddDmpStandardEnglishAnalyzer(this AnalyzersDescriptor ad)
 {
     return(ad.Custom(ElasticAnalyzers.StandardEnglish, nga => nga
                      .Tokenizer(ElasticTokenizers.Standard)
                      .Filters(ElasticFilters.Lowercase, ElasticFilters.EnglishStopwords, ElasticFilters.AsciiFolding)));
 }
 // Analyzers for standard text analysis
 public static AnalyzersDescriptor AddDmpNgramAnalyzer(this AnalyzersDescriptor ad)
 {
     return(ad.Custom(ElasticAnalyzers.Ngram, nga => nga
                      .Tokenizer(ElasticTokenizers.Ngram)
                      .Filters(ElasticFilters.Lowercase, ElasticFilters.AsciiFolding)));
 }
 public static AnalyzersDescriptor AddStandardTokenizerFilter(this AnalyzersDescriptor ad, string name, params string[] filters)
 {
     return(ad.Custom(name, azs => azs.Tokenizer(ElasticTokenizers.Standard).Filters(filters)));
 }