|
@@ -80,7 +80,7 @@ type ExtractTask struct {
|
|
|
SiteClearFn map[string][]string //站点清理函数
|
|
|
IsExtractCity bool //是否开启城市抽取
|
|
|
Fields map[string]int //抽取属性组
|
|
|
- SiteFields map[string]int //抽取站点属性组
|
|
|
+ SiteFields map[string]int //抽取站点属性组
|
|
|
|
|
|
IsFileField bool //是否开启附件抽取
|
|
|
FileFields *sync.Map //抽取附件属性组
|
|
@@ -516,9 +516,9 @@ func (e *ExtractTask) InitRuleCore(isSite bool) {
|
|
|
continue
|
|
|
}
|
|
|
field := qu.ObjToString(v["s_field"])
|
|
|
- if isSite{
|
|
|
+ if isSite {
|
|
|
e.SiteFields[field] = 1
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
e.Fields[field] = 1 //加入抽取属性组备用
|
|
|
}
|
|
|
rinfo := &RegLuaInfo{
|
|
@@ -573,9 +573,9 @@ func (e *ExtractTask) InitRuleCore(isSite bool) {
|
|
|
continue
|
|
|
}
|
|
|
field := qu.ObjToString(v["s_field"])
|
|
|
- if isSite{
|
|
|
+ if isSite {
|
|
|
e.SiteFields[field] = 1
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
e.Fields[field] = 1 //加入抽取属性组备用
|
|
|
}
|
|
|
rinfo := &RegLuaInfo{
|
|
@@ -1520,33 +1520,37 @@ func getFieldAllAndBlocks(a [][]map[string]interface{}) (arr [][]map[string]inte
|
|
|
for _, v := range a {
|
|
|
_id, _ := v[0]["_id"]
|
|
|
if tmp, ok := v[1]["$set"].(map[string]interface{}); ok {
|
|
|
- if tmp["blocks"] != nil {
|
|
|
- block := map[string]interface{}{
|
|
|
- "_id": _id,
|
|
|
- "blocks": tmp["blocks"],
|
|
|
+ if ju.SaveBlock {
|
|
|
+ if tmp["blocks"] != nil {
|
|
|
+ block := map[string]interface{}{
|
|
|
+ "_id": _id,
|
|
|
+ "blocks": tmp["blocks"],
|
|
|
+ }
|
|
|
+ blocks = append(blocks, block)
|
|
|
}
|
|
|
- blocks = append(blocks, block)
|
|
|
}
|
|
|
delete(tmp, "blocks")
|
|
|
- if f, ok := tmp["fieldall"].(map[string][]map[string]interface{}); ok {
|
|
|
- fieldall := map[string]interface{}{
|
|
|
- "_id": _id,
|
|
|
+ if ju.FieldsFind {
|
|
|
+ if f, ok := tmp["fieldall"].(map[string][]map[string]interface{}); ok {
|
|
|
+ fieldall := map[string]interface{}{
|
|
|
+ "_id": _id,
|
|
|
+ }
|
|
|
+ for k, v := range f {
|
|
|
+ fieldall[k] = v
|
|
|
+ }
|
|
|
+ fieldalls = append(fieldalls, fieldall)
|
|
|
}
|
|
|
- for k, v := range f {
|
|
|
- fieldall[k] = v
|
|
|
+ if ff, ok := tmp["fieldallf"].(map[string][]map[string]interface{}); ok {
|
|
|
+ fieldallf := map[string]interface{}{
|
|
|
+ "_id": _id,
|
|
|
+ }
|
|
|
+ for k, v := range ff {
|
|
|
+ fieldallf[k] = v
|
|
|
+ }
|
|
|
+ fieldallsf = append(fieldalls, fieldallf)
|
|
|
}
|
|
|
- fieldalls = append(fieldalls, fieldall)
|
|
|
}
|
|
|
delete(tmp, "fieldall")
|
|
|
- if ff, ok := tmp["fieldallf"].(map[string][]map[string]interface{}); ok {
|
|
|
- fieldallf := map[string]interface{}{
|
|
|
- "_id": _id,
|
|
|
- }
|
|
|
- for k, v := range ff {
|
|
|
- fieldallf[k] = v
|
|
|
- }
|
|
|
- fieldallsf = append(fieldalls, fieldallf)
|
|
|
- }
|
|
|
delete(tmp, "fieldallf")
|
|
|
v[1] = tmp
|
|
|
}
|