|
@@ -644,37 +644,35 @@ func ExtRegCore(extfrom string, doc map[string]interface{}, j *ju.Job, in *RegLu
|
|
|
if !b {
|
|
|
return
|
|
|
}
|
|
|
+ kvMap := getKvByLuaFields(extfrom, j, in, et.Tag)
|
|
|
if in.IsLua {
|
|
|
lua := ju.LuaScript{Code: in.Code, Name: in.Name, Doc: doc, Script: in.RuleText}
|
|
|
- lua.KvMap = getKvByLuaFields(extfrom, j, in, et.Tag)
|
|
|
+ lua.KvMap = kvMap
|
|
|
lua.Block = j.Block
|
|
|
extinfo := lua.RunScript("core")
|
|
|
- for k, v := range extinfo {
|
|
|
- if k == in.Field {
|
|
|
- if j.Result[k] == nil {
|
|
|
- j.Result[k] = [](*ju.ExtField){}
|
|
|
- }
|
|
|
- if tmps, ok := v.([]map[string]interface{}); ok {
|
|
|
- for _, tmp := range tmps {
|
|
|
- field := &ju.ExtField{Weight: qu.IntAll(tmp["weight"]), Field: k, Code: qu.ObjToString(tmp["code"]), Type: qu.ObjToString(tmp["type"]), RuleText: qu.ObjToString(tmp["ruletext"]), SourceValue: tmp["sourcevalue"], Value: tmp["value"]}
|
|
|
- if tmp["blocktag"] != nil {
|
|
|
- btag := make(map[string]string)
|
|
|
- for k := range tmp["blocktag"].(map[string]bool) {
|
|
|
- if TagConfigDesc[k] != ""{
|
|
|
- btag[k] = TagConfigDesc[k]
|
|
|
- }
|
|
|
- }
|
|
|
- field.BlockTag = btag
|
|
|
- }
|
|
|
- j.Result[k] = append(j.Result[k], field)
|
|
|
+ if tmps, ok := extinfo[in.Field].([]map[string]interface{}); ok {
|
|
|
+ kvMap[in.Field] = tmps
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(kvMap) > 0 {
|
|
|
+ if j.Result[in.Field] == nil {
|
|
|
+ j.Result[in.Field] = [](*ju.ExtField){}
|
|
|
+ }
|
|
|
+ for _, tmp := range kvMap[in.Field] {
|
|
|
+ field := &ju.ExtField{Weight: qu.IntAll(tmp["weight"]), Field: in.Field, Code: qu.ObjToString(tmp["code"]), Type: qu.ObjToString(tmp["type"]), RuleText: qu.ObjToString(tmp["ruletext"]), SourceValue: tmp["sourcevalue"], Value: tmp["value"]}
|
|
|
+ if tmp["blocktag"] != nil {
|
|
|
+ btag := make(map[string]string)
|
|
|
+ for k := range tmp["blocktag"].(map[string]bool) {
|
|
|
+ if TagConfigDesc[k] != "" {
|
|
|
+ btag[k] = TagConfigDesc[k]
|
|
|
}
|
|
|
}
|
|
|
+ field.BlockTag = btag
|
|
|
}
|
|
|
+ j.Result[in.Field] = append(j.Result[in.Field], field)
|
|
|
}
|
|
|
- if len(extinfo) > 0 {
|
|
|
- AddExtLog("extract", j.SourceMid, nil, extinfo, in, et.TaskInfo) //抽取日志
|
|
|
- }
|
|
|
- } else {
|
|
|
+ AddExtLog("extract", j.SourceMid, nil, kvMap, in, et.TaskInfo) //抽取日志
|
|
|
+ } else if !in.IsLua {
|
|
|
//全文正则
|
|
|
//text := qu.ObjToString(doc[extfrom])
|
|
|
//if in.Field != "" {
|