|
|
package main
|
|
|
|
|
|
import (
|
|
|
"dsTools/Utils/FileUtil"
|
|
|
"fmt"
|
|
|
//这个库是目前我接触到最好用的json库!强烈推荐!
|
|
|
"github.com/tidwall/gjson"
|
|
|
)
|
|
|
|
|
|
var map1 = make(map[string]string)
|
|
|
var map2 = make(map[string]string)
|
|
|
|
|
|
func main() {
|
|
|
var indexName = "twitter"
|
|
|
var path = "mappings.properties"
|
|
|
var backupPath = "./MappingBackupJson/"
|
|
|
var createPath = "./MappingCreateJson/"
|
|
|
json1 := FileUtil.ReadFileContent(backupPath + indexName + ".json")
|
|
|
value1 := gjson.Get(json1, path)
|
|
|
value1.ForEach(printKeyValue1())
|
|
|
json2 := FileUtil.ReadFileContent(createPath + indexName + ".json")
|
|
|
value2 := gjson.Get(json2, path)
|
|
|
value2.ForEach(printKeyValue2())
|
|
|
|
|
|
//获取2比1多的字段,生成可以增加字段的mapping
|
|
|
for k, v := range map2 {
|
|
|
//如果存在,表示不需要增加
|
|
|
if _, ok := map1[k]; ok {
|
|
|
//存在,就算是字段类型不一样,也无法变更,只能提供一下。
|
|
|
|
|
|
} else {
|
|
|
fmt.Println(k, v)
|
|
|
fmt.Println(fmt.Sprintf("发现新增字段%s,已成功增加!\n", k))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
func printKeyValue1() func(key gjson.Result, value gjson.Result) bool {
|
|
|
return func(key, value gjson.Result) bool {
|
|
|
map1[key.String()] = value.String()
|
|
|
return true
|
|
|
}
|
|
|
}
|
|
|
func printKeyValue2() func(key gjson.Result, value gjson.Result) bool {
|
|
|
return func(key, value gjson.Result) bool {
|
|
|
map2[key.String()] = value.String()
|
|
|
return true
|
|
|
}
|
|
|
}
|