2
2
using System . Collections . Generic ;
3
3
using System . Linq ;
4
4
using FluentAssertions ;
5
+ using Nest . Domain . Settings ;
5
6
using Nest . Tests . MockData ;
6
7
using Nest . Tests . MockData . Domain ;
7
8
using NUnit . Framework ;
@@ -45,7 +46,34 @@ public void GetIndexSettingsComplex()
45
46
var settings = new IndexSettings ( ) ;
46
47
settings . NumberOfReplicas = 4 ;
47
48
settings . NumberOfShards = 8 ;
49
+
48
50
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
+
49
77
var typeMapping = this . _client . GetMapping ( ElasticsearchConfiguration . DefaultIndex , "elasticsearchprojects" ) ;
50
78
typeMapping . TypeNameMarker = index ;
51
79
settings . Mappings . Add ( typeMapping ) ;
@@ -61,7 +89,91 @@ public void GetIndexSettingsComplex()
61
89
Assert . AreEqual ( r . Settings . NumberOfShards , 8 ) ;
62
90
Assert . Greater ( r . Settings . Count ( ) , 0 ) ;
63
91
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
+ }
65
177
this . _client . DeleteIndex ( index ) ;
66
178
}
67
179
[ Test ]
0 commit comments