/// <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); }
/// <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); }
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)); }
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); }
public sealed override void ContributeCore(CreateIndexDescriptor descriptor, IElasticClient client) { descriptor.Analysis(ContributeCore); }