|
@@ -265,10 +265,10 @@ func UtilEsFind1(tags map[string]interface{}) (error, int64) {
|
|
|
log.Println("id", item["info_id"], "bidding为空")
|
|
|
}
|
|
|
//项目id
|
|
|
- projectId := GetProjectId(info_id)
|
|
|
- if projectId != "" {
|
|
|
- item["projectId"] = SE2.EncodeString(projectId)
|
|
|
- }
|
|
|
+ //projectId := GetProjectId(info_id)
|
|
|
+ //if projectId != "" {
|
|
|
+ // item["projectId"] = SE2.EncodeString(projectId)
|
|
|
+ //}
|
|
|
datas = append(datas, item)
|
|
|
} else {
|
|
|
log.Println("id", item["_id"], "信息为空")
|
|
@@ -276,6 +276,9 @@ func UtilEsFind1(tags map[string]interface{}) (error, int64) {
|
|
|
}(v)
|
|
|
}
|
|
|
wg.Wait()
|
|
|
+
|
|
|
+ GetProjectId(&datas)
|
|
|
+
|
|
|
count := Es.Count(EsIndex, EsType, esquery)
|
|
|
Mgo.Update("entniche_rule", bson.M{"_id": tags["_id"]}, bson.M{
|
|
|
"$set": bson.M{
|
|
@@ -951,7 +954,7 @@ func KeyWordToData(types, item, key string, keyWord []string) []string {
|
|
|
return keyWord
|
|
|
}
|
|
|
|
|
|
-func GetProjectId(id string) string {
|
|
|
+func GetProjectId_1(id string) string {
|
|
|
query := `{"query": {"bool": {"must": [{"term": {"ids": "%s"}}],"must_not": [],"should": []}}}`
|
|
|
querys := fmt.Sprintf(query, id)
|
|
|
projectId := ""
|
|
@@ -968,3 +971,52 @@ func GetProjectId(id string) string {
|
|
|
}
|
|
|
return projectId
|
|
|
}
|
|
|
+
|
|
|
+func chunkArray(arr []string, size int) [][]string {
|
|
|
+ var chunks [][]string
|
|
|
+ for i := 0; i < len(arr); i += size {
|
|
|
+ end := i + size
|
|
|
+ if end > len(arr) {
|
|
|
+ end = len(arr)
|
|
|
+ }
|
|
|
+ chunks = append(chunks, arr[i:end])
|
|
|
+ }
|
|
|
+ return chunks
|
|
|
+}
|
|
|
+
|
|
|
+func GetProjectId(datas *[]map[string]interface{}) (pidMap map[string]interface{}) {
|
|
|
+ var ids []string
|
|
|
+ for _, d1 := range *datas {
|
|
|
+ id := qu.ObjToString(d1["info_id"])
|
|
|
+ ids = append(ids, id)
|
|
|
+ pidMap[id] = ""
|
|
|
+ }
|
|
|
+ query := `{"query": {"bool": {"must": [{"terms": {"ids": ["%s"]}}]}},"_source": ["ids","id"]}`
|
|
|
+ for _, array := range chunkArray(ids, 200) {
|
|
|
+ query = fmt.Sprintf(query, strings.Join(array, "\",\""))
|
|
|
+ data := Es.Get("projectset", "projectset", query)
|
|
|
+ if data != nil && *data != nil && len(*data) > 0 {
|
|
|
+ for _, v := range *data {
|
|
|
+ pid := qu.ObjToString(v["id"])
|
|
|
+ for _, id := range strings.Split(qu.ObjToString(v["ids"]), ",") {
|
|
|
+ if pidMap[id] != nil {
|
|
|
+ pidMap[id] = pid
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.Println("ES未查到项目id", query)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, m := range *datas {
|
|
|
+ id := qu.ObjToString(m["info_id"])
|
|
|
+ if pid := qu.ObjToString(pidMap[id]); pid != "" {
|
|
|
+ log.Println("id: ", id, "pid: ", pid)
|
|
|
+ m["projectId"] = SE2.EncodeString(pid)
|
|
|
+ } else {
|
|
|
+ log.Println("id: ", id, "pid: -")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|