Jelajahi Sumber

新疆bt -城市 补充

zhengkun 3 tahun lalu
induk
melakukan
dd4f5ef05f

+ 5 - 5
extcity/src/config.json

@@ -1,17 +1,17 @@
 {
    "ext_mgodb": {
-     "addr": "127.0.0.1:27017",
+     "addr": "172.17.145.163:27083,172.17.4.187:27082",
      "db": "mixdata",
      "ext_coll": "address_new_2020",
      "check_coll": "address_jy_2021",
      "pool": 10,
-     "user": "",
-     "password": ""
+     "user": "zhengkun",
+     "password": "zk@123123"
    },
   "save_mgodb": {
-    "addr": "127.0.0.1:27017",
+    "addr": "120.0.0.1:27017",
     "db": "zhengkun",
-    "coll": "111122223333",
+    "coll": "ccccccccddddddd",
     "pool": 10,
     "user": "",
     "password": ""

+ 7 - 2
extcity/src/main.go

@@ -15,9 +15,9 @@ func init()  {
 }
 
 func main()  {
-	log.Debug("城市抽取准备完毕...")
 	e = &ext.ExtractTask{}
 	e.InitCityInfo()  		//初始化-抽取城市
+	log.Debug("城市抽取加载完毕...")
 	ext.InitCheckCity()  	//初始化-校验城市
 
 	fromSourceDataExtCity()
@@ -58,4 +58,9 @@ func fromSourceDataExtCity()  {
 		tmp = map[string]interface{}{}
 	}
 	log.Debug("is over ",total,isok,ischeck)
-}
+}
+
+
+
+
+

+ 27 - 0
src/jy/extract/extractInit.go

@@ -127,6 +127,8 @@ type ExtractTask struct {
 	PostCodeMap map[string]*PostCode //邮编
 	AreaCodeMap map[string]*AreaCode //区号
 
+	XjbtCityArr          []map[string]interface{}  		//新疆兵团相关数据
+
 	InfoType []map[string]interface {
 	}
 
@@ -153,6 +155,7 @@ type SiteCity struct {
 	D string //区全称
 }
 
+
 type ClearTaskInfo struct {
 	Name, Version, VersionId     string    //名称、版本、版本id
 	FromDbAddr, FromDB, FromColl string    //清理数据库地址、库名、表名
@@ -1023,9 +1026,27 @@ func InitSite() []map[string]interface{} {
 	return *list
 }
 
+//加载新疆兵团映射关系
+func (e *ExtractTask) InitXjbtCityInfo() {
+	defer qu.Catch()
+	//加载数据
+	query := map[string]interface{}{}
+	list, _ := db.Mgo.Find("area_xjbt", query, nil, nil, false, -1, -1)
+	arr := []map[string]interface{}{}
+	for _,v := range *list {
+		delete(v,"_id")
+		arr = append(arr,v)
+	}
+	e.XjbtCityArr = arr
+}
+
+
 func (e *ExtractTask) InitCityInfo() {
 	defer qu.Catch()
 	e.InitVar() //初始化变量
+	//新疆兵团数据
+	e.InitXjbtCityInfo()
+
 	//site站点信息
 	for _, v := range InitSite() {
 		site, _ := v["site"].(string)
@@ -1250,6 +1271,12 @@ func (e *ExtractTask) InitVar() {
 	e.Seg_PCD.LoadDict("./res/pcd.txt")
 	e.Seg_SV.LoadDict("./res/sv.txt")
 
+
+	//新疆兵团-数组
+	if e.XjbtCityArr == nil {
+		e.XjbtCityArr = make([]map[string]interface{},0)
+	}
+
 	//初始化map
 	if e.SiteCityMap == nil {
 		e.SiteCityMap = make(map[string]*SiteCity)

+ 52 - 0
src/jy/extract/newextractcity.go

@@ -15,6 +15,8 @@ var AgencyReg = []*regexp.Regexp{
 	regexp.MustCompile(".{2,15}((招标)?代理|咨询|政府采购)"),
 }
 
+var xjbtReg *regexp.Regexp = regexp.MustCompile("^(新疆生产建设兵团|新疆兵团)")
+
 //抽取city
 func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp *map[string]interface{}, id string) {
 	/*
@@ -170,6 +172,16 @@ func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp *map[string]interface{
 	(*resulttmp)["area"] = arearesult
 	(*resulttmp)["city"] = cityresult
 	(*resulttmp)["district"] = districtresult
+
+	//校验-映射新疆兵团
+	if xjbtReg.MatchString(buyer) && cityresult==""  {
+		a,c,d,ok := e.CheckingXjbtCity(buyer)
+		if ok {
+			(*resulttmp)["area"] = a
+			(*resulttmp)["city"] = c
+			(*resulttmp)["district"] = d
+		}
+	}
 }
 
 //jsondata中抽取城市
@@ -921,6 +933,46 @@ func (e *ExtractTask) RemoveCD(finishP []string, j *ju.Job) {
 
 }
 
+
+//-新疆兵团映射-
+func(e *ExtractTask) CheckingXjbtCity(buyer string) (new_a,new_c,new_d string,ok bool){
+	buyer = strings.ReplaceAll(buyer,"新疆兵团","新疆生产建设兵团")
+	ok = false
+	for _,info := range e.XjbtCityArr{
+		name := qu.ObjToString(info["name"])
+		alias := qu.ObjToString(info["alias"])
+		if strings.Contains(buyer,name) || strings.Contains(buyer,alias) {
+			new_a = qu.ObjToString(info["area"])
+			new_c = qu.ObjToString(info["city"])
+			new_d = qu.ObjToString(info["district"])
+			ok = true
+			if res,ok := info["list"].([]interface{});ok {
+				list := qu.ObjArrToMapArr(res)
+				for _,c := range list {
+					c_name := qu.ObjToString(c["name"])
+					if strings.Contains(buyer,name+c_name) || strings.Contains(buyer,alias+c_name) {
+						new_a = qu.ObjToString(c["area"])
+						new_c = qu.ObjToString(c["city"])
+						new_d = qu.ObjToString(c["district"])
+						break
+					}
+				}
+			}
+			break
+		}
+	}
+	return new_a,new_c,new_d,ok
+}
+
+
+
+
+
+
+
+
+
+
 //province,city,district干扰项减分
 //func PCDSubtractScore(e *ExtractTask, j *ju.Job, stype, text string, score int) {
 //	defer qu.Catch()

+ 1 - 0
src/main.go

@@ -69,6 +69,7 @@ func main() {
 
 	//临时调试
 	//testMain()
+
 	lock := make(chan bool)
 	<-lock
 }