package esutil import ( "errors" "fmt" "strconv" "strings" "basic.com/pubsub/protomsg.git" ) // 查询底库人员信息 func DbPersoninfos( queryindex int, querynums int ) ([]*protomsg.Esinfo, error){ var dbinfos []*protomsg.Esinfo point := strconv.Itoa(queryindex) number := strconv.Itoa(querynums) var dbinfoRequest = ` { "from": ` + point + `, "query": { "match_all": {} }, "size":`+ number +`, "_source": [ "id", "tableId", "faceFeature" ] }` buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/dbpersons/_search",[]byte(dbinfoRequest)) if err != nil { return dbinfos ,errors.New("http request dbtablename info is err!") } // 返回 _source 数组 sources, err := Sourcelist(buf) if err != nil { return dbinfos,err } // 返回所有查询的数据 dbpersoninfos := Parsesources(sources) return dbpersoninfos, nil } // 根据底库id查询底库信息 func Dbtablefosbyid (id []string) ([]protomsg.Dbtable, error) { var dbinfo []protomsg.Dbtable dbtableId := strings.Replace(strings.Trim(fmt.Sprint(id), "[]"), " ", "\",\"", -1) var dbinfoRequest = ` { "query": { "bool": { "filter": [{ "terms": { "_id": [ "`+ dbtableId +`" ] } }] } } } ` buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search",[]byte(dbinfoRequest)) if err != nil { return dbinfo, err } sources, err := Sourcelist(buf) if err != nil { return dbinfo , err } dbtable := Dbtablebyid(sources) return dbtable, nil } // 根据底库人员id查询底库人员信息 func Dbpersoninfosbyid (id []string) ([]protomsg.Dbperson, error) { var dbinfo []protomsg.Dbperson dbtablePersonId := strings.Replace(strings.Trim(fmt.Sprint(id), "[]"), " ", "\",\"", -1) var dbinfoRequest = ` { "query": { "bool": { "filter": [{ "terms": { "_id": [ "`+ dbtablePersonId +`" ] } }] } } } ` buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtablepersons/_search",[]byte(dbinfoRequest)) if err != nil { return dbinfo, err } sources, err := Sourcelist(buf) if err != nil { return dbinfo , err } dbperson := Dbpersonbyid(sources) println(dbperson) return dbperson,nil } // 根据tableid 查询tablename func Dbtablename(tableid string ) (tablename string, err error) { var dbinfotable =` { "query": { "bool": { "filter": [ { "term": { "id":"`+tableid+`" } } ] } }, "_source": [ "tableName" ] } ` buf, err := EsReq("POST", "http://192.168.1.182:9200/dbtables/_search",[]byte(dbinfotable)) if err != nil { return "" ,errors.New("http request dbtablename info is err!") } sources, err := Sourcelist(buf) if err != nil { return "",err } for _, source := range sources { if name, ok := source["tableName"].(string); ok { tablename = name break } } return tablename, nil }