123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package util
- import (
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/mongo/options"
- "log"
- "strings"
- "sync"
- )
- func HistoryReadyData() {
- mgo, err := InitMgoEn("mongodb://172.17.4.187:27082,172.17.145.163:27083", 10, "fengweiqiang", "fwq@123123")
- if err != nil {
- log.Fatalln(err)
- }
- con := mgo.GetCon()
- if con == nil {
- log.Fatalln("mgo con err")
- }
- cursor, err := con.Database("mixdata").Collection("qyxy_std").Find(nil, bson.M{}, options.Find().SetProjection(
- bson.M{
- "company_name": 1,
- "company_type": 1,
- }).SetSort(bson.M{"_id": 1}))
- if err != nil {
- log.Fatalln(err)
- }
- defer cursor.Close(nil)
- wg := sync.WaitGroup{}
- bools := make(chan bool, 10)
- var num uint64
- for tmp := map[string]interface{}{}; cursor.Next(nil); tmp = map[string]interface{}{} {
- num++
- err := cursor.Decode(&tmp)
- if err != nil {
- log.Println(err)
- continue
- }
- bools<- true
- wg.Add(1)
- go func(t map[string]interface{}) {
- defer func() {
- <-bools
- wg.Done()
- }()
- if company_name, ok := t["company_name"].(string); ok {
- if reglen.MatchString(company_name) || !unstart_strReg.MatchString(company_name) ||
- con_strReg.MatchString(company_name) {
- return
- }
- company_type:= ObjToString(t["company_type"])
- if strings.Contains(company_type,"个人")||strings.Contains(company_type,"个体"){
- return
- }
- //保存企业名
- con.Database("mixdata").Collection("unique_qyxy").InsertOne(nil, bson.M{
- "qy_name": company_name,
- })
- }
- }(tmp)
- if num%1000000 == 0 {
- log.Println("qyxy_std:", num)
- }
- }
- wg.Wait()
- log.Println("qyxy_std ok")
- num = 0
- cursormixdata, err := con.Database("mixdata").Collection("qyxy_historyname").Find(nil, bson.M{}, options.Find().SetProjection(
- bson.M{
- "company_name": 1,
- "company_type": 1,
- }).SetSort(bson.M{"_id": 1}))
- if err != nil {
- log.Fatalln(err)
- }
- defer cursormixdata.Close(nil)
- for tmp := map[string]interface{}{}; cursormixdata.Next(nil); tmp = map[string]interface{}{} {
- num++
- err := cursormixdata.Decode(&tmp)
- if err != nil {
- log.Println(err)
- continue
- }
- wg.Add(1)
- go func(t map[string]interface{}) {
- bools<- true
- defer func() {
- wg.Done()
- <-bools
- }()
- if company_name, ok := t["company_name"].(string); ok {
- if reglen.MatchString(company_name) || !unstart_strReg.MatchString(company_name) ||
- con_strReg.MatchString(company_name) {
- return
- }
- company_type:= ObjToString(t["company_type"])
- if strings.Contains(company_type,"个人")||strings.Contains(company_type,"个体"){
- return
- }
- //保存企业名
- con.Database("mixdata").Collection("unique_qyxy").InsertOne(nil, bson.M{
- "qy_name": company_name,
- })
- }
- }(tmp)
- if num%1000000 == 0 {
- log.Println("qyxy_historyname:", num)
- }
- }
- log.Println("qyxy_historyname ok")
- }
- //测试方法
- func TestData() {
- //北京建雄建筑集团有限公司 江苏贝尔照明电气有限公司 甘肃三杰软件有限公司 云南和合泰商贸有限公司
- //甘肃泓文建筑设计有限公司 天津市静海县龙盛水泥制品厂 中国联通网络通信有限公司张家口市分公司
- //广联达软件有限公司河南分公司 上海熊猫机械(集团)有限公司昆明分公司
- name:="上海熊猫机械(集团)有限公司昆明分公司"
- rname, isok, _ ,datas := dealWithNameScoreRules(name)
- log.Println(rname,isok,len(datas))
- }
|