@@ -2,20 +2,153 @@ package util
22
33import (
44 "context"
5+ "fmt"
6+
7+ log "github.com/sirupsen/logrus"
58)
69
710// SetDefaultIndexTemplate to set default template for indexes
811func SetDefaultIndexTemplate () error {
12+
13+ analyzers := `{
14+ "analyzer": {
15+ "universal": {
16+ "tokenizer": "standard",
17+ "filter": [
18+ "universal_stop"
19+ ]
20+ },
21+ "autosuggest_analyzer": {
22+ "filter": [
23+ "lowercase",
24+ "asciifolding",
25+ "autosuggest_filter"
26+ ],
27+ "tokenizer": "standard",
28+ "type": "custom"
29+ },
30+ "ngram_analyzer": {
31+ "filter": [
32+ "lowercase",
33+ "asciifolding",
34+ "ngram_filter"
35+ ],
36+ "tokenizer": "standard",
37+ "type": "custom"
38+ },
39+ "synonyms": {
40+ "tokenizer": "standard",
41+ "filter": [
42+ "synonym_graph",
43+ "lowercase"
44+ ]
45+ }
46+ },
47+ "filter": {
48+ "synonym_graph": {
49+ "type": "synonym_graph",
50+ "synonyms": []
51+ },
52+ "universal_stop": {
53+ "type": "stop",
54+ "stopwords": "_english_"
55+ },
56+ "autosuggest_filter": {
57+ "max_gram": "20",
58+ "min_gram": "1",
59+ "token_chars": [
60+ "letter",
61+ "digit",
62+ "punctuation",
63+ "symbol"
64+ ],
65+ "type": "edge_ngram"
66+ },
67+ "ngram_filter": {
68+ "max_gram": "9",
69+ "min_gram": "2",
70+ "token_chars": [
71+ "letter",
72+ "digit",
73+ "punctuation",
74+ "symbol"
75+ ],
76+ "type": "ngram"
77+ }
78+ }
79+ }`
80+
81+ mappings := `{
82+ "dynamic_templates": [{
83+ "strings": {
84+ "match_mapping_type": "string",
85+ "mapping": {
86+ "type": "text",
87+ "analyzer": "standard",
88+ "fields": {
89+ "autosuggest": {
90+ "type": "text",
91+ "analyzer": "autosuggest_analyzer",
92+ "search_analyzer": "simple"
93+ },
94+ "keyword": {
95+ "type": "keyword",
96+ "ignore_above": 256
97+ },
98+ "search": {
99+ "type": "text",
100+ "analyzer": "ngram_analyzer",
101+ "search_analyzer": "simple"
102+ },
103+ "synonyms": {
104+ "type": "text",
105+ "analyzer": "synonym"
106+ },
107+ "lang": {
108+ "type": "text",
109+ "analyzer": "universal"
110+ }
111+ }
112+ }
113+ }
114+ }],
115+ "dynamic": true
116+ }`
117+
9118 version := GetVersion ()
10119 if version == 7 {
11- response , err := GetClient7 ().IndexTemplateExists ("default_temp" ).
12- Do (context .Background ())
13- if err != nil || ! response {
14- defaultSetting := `{"template" : "*", "settings" : {"number_of_shards" : 1, "max_ngram_diff" : 8, "max_shingle_diff" : 8}}`
15- _ , err := GetClient7 ().IndexPutTemplate ("default_temp" ).BodyString (defaultSetting ).Do (context .Background ())
16- if err != nil {
17- return err
120+ defaultSetting := fmt .Sprintf (`{
121+ "template": "*",
122+ "settings": {
123+ "number_of_shards": 1,
124+ "max_ngram_diff": 8,
125+ "max_shingle_diff": 8,
126+ "analysis": %s
127+ },
128+ "mappings": %s
129+ }` , analyzers , mappings )
130+ _ , err := GetClient7 ().IndexPutTemplate ("default_temp" ).BodyString (defaultSetting ).Do (context .Background ())
131+ if err != nil {
132+ log .Errorln ("[SET TEMPLATE ERROR V7]" , ": " , err )
133+ return err
134+ }
135+ }
136+
137+ if version == 6 {
138+ defaultSetting := fmt .Sprintf (`{
139+ "template": "*",
140+ "settings": {
141+ "number_of_shards": 1,
142+ "analysis": %s
143+ },
144+ "mappings": {
145+ "_doc": %s
18146 }
147+ }` , analyzers , mappings )
148+ _ , err := GetClient6 ().IndexPutTemplate ("default_temp" ).BodyString (defaultSetting ).Do (context .Background ())
149+ if err != nil {
150+ log .Errorln ("[SET TEMPLATE ERROR V6]" , ": " , err )
151+ return err
19152 }
20153 }
21154 return nil
0 commit comments