22using System . Collections . Generic ;
33using System . Linq ;
44using FluentAssertions ;
5+ using Nest . Domain . Settings ;
56using Nest . Tests . MockData ;
67using Nest . Tests . MockData . Domain ;
78using NUnit . Framework ;
@@ -45,7 +46,34 @@ public void GetIndexSettingsComplex()
4546 var settings = new IndexSettings ( ) ;
4647 settings . NumberOfReplicas = 4 ;
4748 settings . NumberOfShards = 8 ;
49+
4850 settings . Analysis . Analyzers . Add ( "snowball" , new SnowballAnalyzer { Language = "English" } ) ;
51+ settings . Analysis . Analyzers . Add ( "standard" , new StandardAnalyzer { StopWords = new [ ] { "word1" , "word2" } } ) ;
52+ settings . Analysis . Analyzers . Add ( "swedishlanguage" , new LanguageAnalyzer ( Language . Swedish ) { StopWords = new [ ] { "word1" , "word2" } , StemExclusionList = new [ ] { "stem1" , "stem2" } } ) ;
53+
54+ settings . Analysis . CharFilters . Add ( "char1" , new HtmlStripCharFilter ( ) ) ;
55+ settings . Analysis . CharFilters . Add ( "char2" , new MappingCharFilter { Mappings = new [ ] { "ph=>f" , "qu=>q" } } ) ;
56+
57+ settings . Analysis . TokenFilters . Add ( "tokenfilter1" , new EdgeNGramTokenFilter ( ) ) ;
58+ settings . Analysis . TokenFilters . Add ( "tokenfilter2" , new SnowballTokenFilter ( ) ) ;
59+
60+ settings . Analysis . Tokenizers . Add ( "token1" , new KeywordTokenizer ( ) ) ;
61+ settings . Analysis . Tokenizers . Add ( "token2" , new PathHierarchyTokenizer ( ) ) ;
62+
63+ settings . Similarity = new SimilaritySettings ( ) ;
64+ var dfr = new CustomSimilaritySettings ( "test1" , "DFR" ) ;
65+ dfr . SimilarityParameters . Add ( "basic_model" , "g" ) ;
66+ dfr . SimilarityParameters . Add ( "after_effect" , "l" ) ;
67+ dfr . SimilarityParameters . Add ( "normalization" , "h2" ) ;
68+ dfr . SimilarityParameters . Add ( "normalization.h2.c" , 3 ) ;
69+ settings . Similarity . CustomSimilarities . Add ( dfr ) ;
70+
71+ var ib = new CustomSimilaritySettings ( "test2" , "IB" ) ;
72+ ib . SimilarityParameters . Add ( "distribution" , "spl" ) ;
73+ ib . SimilarityParameters . Add ( "lambda" , "ttf" ) ;
74+ ib . SimilarityParameters . Add ( "normalization" , "h1" ) ;
75+ settings . Similarity . CustomSimilarities . Add ( ib ) ;
76+
4977 var typeMapping = this . _client . GetMapping ( ElasticsearchConfiguration . DefaultIndex , "elasticsearchprojects" ) ;
5078 typeMapping . TypeNameMarker = index ;
5179 settings . Mappings . Add ( typeMapping ) ;
@@ -61,7 +89,91 @@ public void GetIndexSettingsComplex()
6189 Assert . AreEqual ( r . Settings . NumberOfShards , 8 ) ;
6290 Assert . Greater ( r . Settings . Count ( ) , 0 ) ;
6391 Assert . True ( r . Settings . ContainsKey ( "merge.policy.merge_factor" ) ) ;
64-
92+ Assert . AreEqual ( "10" , r . Settings [ "merge.policy.merge_factor" ] ) ;
93+
94+ Assert . AreEqual ( 3 , r . Settings . Analysis . Analyzers . Count ) ;
95+ { // assert analyzers
96+ Assert . True ( r . Settings . Analysis . Analyzers . ContainsKey ( "snowball" ) ) ;
97+ var snoballAnalyser = r . Settings . Analysis . Analyzers [ "snowball" ] as SnowballAnalyzer ;
98+ Assert . NotNull ( snoballAnalyser ) ;
99+ Assert . AreEqual ( "English" , snoballAnalyser . Language ) ;
100+
101+ Assert . True ( r . Settings . Analysis . Analyzers . ContainsKey ( "standard" ) ) ;
102+ var standardAnalyser = r . Settings . Analysis . Analyzers [ "standard" ] as StandardAnalyzer ;
103+ Assert . NotNull ( standardAnalyser ) ;
104+ Assert . NotNull ( standardAnalyser . StopWords ) ;
105+ Assert . AreEqual ( 2 , standardAnalyser . StopWords . Count ( ) ) ;
106+ Assert . True ( standardAnalyser . StopWords . Contains ( "word1" ) ) ;
107+ Assert . True ( standardAnalyser . StopWords . Contains ( "word2" ) ) ;
108+
109+ Assert . True ( r . Settings . Analysis . Analyzers . ContainsKey ( "swedishlanguage" ) ) ;
110+ var languageAnalyser = r . Settings . Analysis . Analyzers [ "swedishlanguage" ] as LanguageAnalyzer ;
111+ Assert . NotNull ( languageAnalyser ) ;
112+ Assert . AreEqual ( Language . Swedish . ToString ( ) . ToLower ( ) , languageAnalyser . Type ) ;
113+ Assert . NotNull ( languageAnalyser . StopWords ) ;
114+ Assert . AreEqual ( 2 , languageAnalyser . StopWords . Count ( ) ) ;
115+ Assert . True ( languageAnalyser . StopWords . Contains ( "word1" ) ) ;
116+ Assert . True ( languageAnalyser . StopWords . Contains ( "word2" ) ) ;
117+ Assert . AreEqual ( 2 , languageAnalyser . StemExclusionList . Count ( ) ) ;
118+ Assert . True ( languageAnalyser . StemExclusionList . Contains ( "stem1" ) ) ;
119+ Assert . True ( languageAnalyser . StemExclusionList . Contains ( "stem2" ) ) ;
120+ }
121+
122+ Assert . AreEqual ( 2 , r . Settings . Analysis . CharFilters . Count ) ;
123+ { // assert char filters
124+ Assert . True ( r . Settings . Analysis . CharFilters . ContainsKey ( "char1" ) ) ;
125+ var filter1 = r . Settings . Analysis . CharFilters [ "char1" ] as HtmlStripCharFilter ;
126+ Assert . NotNull ( filter1 ) ;
127+ Assert . True ( r . Settings . Analysis . CharFilters . ContainsKey ( "char2" ) ) ;
128+ var filter2 = r . Settings . Analysis . CharFilters [ "char2" ] as MappingCharFilter ;
129+ Assert . NotNull ( filter2 ) ;
130+ Assert . AreEqual ( 2 , filter2 . Mappings . Count ( ) ) ;
131+ Assert . True ( filter2 . Mappings . Contains ( "ph=>f" ) ) ;
132+ Assert . True ( filter2 . Mappings . Contains ( "qu=>q" ) ) ;
133+ }
134+
135+ Assert . AreEqual ( 2 , r . Settings . Analysis . TokenFilters . Count ) ;
136+ { // assert token filters
137+ Assert . True ( r . Settings . Analysis . TokenFilters . ContainsKey ( "tokenfilter1" ) ) ;
138+ var filter1 = r . Settings . Analysis . TokenFilters [ "tokenfilter1" ] as EdgeNGramTokenFilter ;
139+ Assert . NotNull ( filter1 ) ;
140+ Assert . True ( r . Settings . Analysis . TokenFilters . ContainsKey ( "tokenfilter2" ) ) ;
141+ var filter2 = r . Settings . Analysis . TokenFilters [ "tokenfilter2" ] as SnowballTokenFilter ;
142+ Assert . NotNull ( filter2 ) ;
143+ }
144+
145+ Assert . AreEqual ( 2 , r . Settings . Analysis . Tokenizers . Count ) ;
146+ { // assert tokenizers
147+ Assert . True ( r . Settings . Analysis . Tokenizers . ContainsKey ( "token1" ) ) ;
148+ var tokenizer1 = r . Settings . Analysis . Tokenizers [ "token1" ] as KeywordTokenizer ;
149+ Assert . NotNull ( tokenizer1 ) ;
150+ Assert . True ( r . Settings . Analysis . Tokenizers . ContainsKey ( "token2" ) ) ;
151+ var tokenizer2 = r . Settings . Analysis . Tokenizers [ "token2" ] as PathHierarchyTokenizer ;
152+ Assert . NotNull ( tokenizer2 ) ;
153+ }
154+
155+
156+ Assert . NotNull ( r . Settings . Similarity ) ;
157+ Assert . NotNull ( r . Settings . Similarity . CustomSimilarities ) ;
158+ Assert . AreEqual ( 2 , r . Settings . Similarity . CustomSimilarities . Count ) ;
159+ { // assert similarity
160+ var similarity1 = r . Settings . Similarity . CustomSimilarities . FirstOrDefault ( x => x . Name . Equals ( "test1" , StringComparison . InvariantCultureIgnoreCase ) ) ;
161+ Assert . NotNull ( similarity1 ) ;
162+ Assert . AreEqual ( "DFR" , similarity1 . Type ) ;
163+ Assert . AreEqual ( 4 , similarity1 . SimilarityParameters . Count ) ;
164+ Assert . True ( similarity1 . SimilarityParameters . Any ( x => x . Key . Equals ( "basic_model" ) && x . Value . ToString ( ) . Equals ( "g" ) ) ) ;
165+ Assert . True ( similarity1 . SimilarityParameters . Any ( x => x . Key . Equals ( "after_effect" ) && x . Value . ToString ( ) . Equals ( "l" ) ) ) ;
166+ Assert . True ( similarity1 . SimilarityParameters . Any ( x => x . Key . Equals ( "normalization" ) && x . Value . ToString ( ) . Equals ( "h2" ) ) ) ;
167+ Assert . True ( similarity1 . SimilarityParameters . Any ( x => x . Key . Equals ( "normalization.h2.c" ) && x . Value . ToString ( ) . Equals ( "3" ) ) ) ;
168+
169+ var similarity2 = r . Settings . Similarity . CustomSimilarities . FirstOrDefault ( x => x . Name . Equals ( "test2" , StringComparison . InvariantCultureIgnoreCase ) ) ;
170+ Assert . NotNull ( similarity2 ) ;
171+ Assert . AreEqual ( "IB" , similarity2 . Type ) ;
172+ Assert . AreEqual ( 3 , similarity2 . SimilarityParameters . Count ) ;
173+ Assert . True ( similarity2 . SimilarityParameters . Any ( x => x . Key . Equals ( "distribution" ) && x . Value . ToString ( ) . Equals ( "spl" ) ) ) ;
174+ Assert . True ( similarity2 . SimilarityParameters . Any ( x => x . Key . Equals ( "lambda" ) && x . Value . ToString ( ) . Equals ( "ttf" ) ) ) ;
175+ Assert . True ( similarity2 . SimilarityParameters . Any ( x => x . Key . Equals ( "normalization" ) && x . Value . ToString ( ) . Equals ( "h1" ) ) ) ;
176+ }
65177 this . _client . DeleteIndex ( index ) ;
66178 }
67179 [ Test ]
0 commit comments