wcj 6 лет назад
Родитель
Сommit
700873d83d
1 измененных файлов с 21 добавлено и 23 удалено
  1. 21 23
      src/jy/extract/extract.go

+ 21 - 23
src/jy/extract/extract.go

@@ -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 != "" {