A general and configurable user matching library based on Go language / 一个基于Go语言实现的通用且可配置化的用户匹配库
MIT License
A general and configurable user matching library based on Go language
How to find the target matching users by priority ?
Computing user and get the core data for matching.
Get user Matched Property Combinations
and fetch users from userMap
by key in turn.
You can follow the steps below, or use the example.
version
:the version number of applicationlanguage
:the different agentsrules
:the different rules of matchingapp:
version: v1.0.0
language: go1.16.10
strategy:
rules:
# If it is a woman, first match the male, then the female
- gender=0:
- gender=1
- gender=0
# If male, match female first, then male
- gender=1:
- gender=0
- gender=1
# ... ...
Create a strategy object and call AutoCreateStrategy()
.
package main
import (
"matching/pkg/strategy"
)
func main(){
st := strategy.UseStrategy{}
err := st.AutoCreateStrategy("config/config.yaml")
if err != nil {
fmt.Println(err.Error())
return
}
}
You can get implodePropertiesString
,combinationList
and matchedCombinationList
after calling ComputeUser()
.
implodePropertiesString
:implode the properties to stringcombinationList
:get the combination list of propertiesmatchedCombinationList
:get the matched combination list of propertiespackage main
import (
"matching/pkg/strategy"
)
func main() {
user := strategy.User{
UserId: "12345678",
Score: 0.0,
Gender: 0,
Age: "80",
City: "Yon",
Status: 1,
}
implodePropertiesString, combinationList, matchedCombinationList := st.ComputeUser(user)
}
Welcome to use and contribute to this project !