Jianghan 1 gadu atpakaļ
vecāks
revīzija
d9352550f0
1 mainītis faili ar 39 papildinājumiem un 0 dzēšanām
  1. 39 0
      esv7/elasticutil.go

+ 39 - 0
esv7/elasticutil.go

@@ -641,6 +641,45 @@ func UpdateNewDoc(index, itype string, obj ...interface{}) bool {
 	return b
 }
 
+func UpdateNew(index string, obj ...interface{}) bool {
+	client := GetEsConn()
+	defer DestoryEsConn(client)
+	b := false
+	if client != nil {
+		defer func() {
+			if r := recover(); r != nil {
+				log.Println("[E]", r)
+				for skip := 1; ; skip++ {
+					_, file, line, ok := runtime.Caller(skip)
+					if !ok {
+						break
+					}
+					go log.Printf("%v,%v\n", file, line)
+				}
+			}
+		}()
+		var err error
+		for _, v := range obj {
+			tempObj := objToMap(v)
+			if tempObj == nil || len(*tempObj) == 0 {
+				continue
+			}
+			_id := fmt.Sprint((*tempObj)["_id"])
+			if _id != "" {
+				client.Delete().Index(index).Id(_id).Do(context.TODO())
+			}
+			_, err = client.Index().Index(index).Id(_id).BodyJson(tempObj).Do(context.TODO())
+			if err != nil {
+				log.Println("保存到ES出错", err.Error())
+			} else {
+				b = true
+			}
+		}
+
+	}
+	return b
+}
+
 func BulkSave(index, itype string, obj *[]map[string]interface{}, isDelBefore bool) {
 	client := GetEsConn()
 	defer DestoryEsConn(client)