模糊匹配 Java 中的名称列表
Fuzzy Matching a list of names in Java
我正在尝试使用模糊匹配器库来匹配我们数据库中的姓名列表。
数据被序列化为一个 java 对象,想知道我们如何将数据映射到模糊匹配库
中定义的 Document 对象
https://github.com/intuit/fuzzy-matcher
我们的User.javaclass有这些属性
- 用户名
- 名字
- 姓氏
- 地址
- 等....
我们的数据库中有 1000 多个用户,并希望 运行 通过模糊匹配器帮助检测重复项。
任何可以帮助我们更好地理解库的代码片段都会有所帮助
此处 User
对象映射到 Document
而每个属性都需要映射到 fuzzy-matcher
中的 Element
对象
如果您在 java 中有一个 User
对象的集合,您可以像这样将其转换为 Document/Element 个对象
List<User> users = // fetch data from db
List<Document> documents = users.stream().map(user -> {
return new Document.Builder(userId)
.addElement(new Element.Builder<String>().setValue(user.getFirstName() + " " + user.getLastName()).setType(NAME).createElement())
.addElement(new Element.Builder<String>().setValue(user.getAddress()).setType(ADDRESS).createElement())
.createDocument();
}).collect(Collectors.toList());
获得文档列表后,您可以将其传递给 MatchService 中的方法之一以触发模糊匹配
MatchService matchService = new MatchService();
Map<String, List<Match<Document>>> result = matchService.applyMatchByDocId(documents);
请注意,上述方法将 return 您得到一个按 userId
分组的结果
我正在尝试使用模糊匹配器库来匹配我们数据库中的姓名列表。 数据被序列化为一个 java 对象,想知道我们如何将数据映射到模糊匹配库
中定义的 Document 对象https://github.com/intuit/fuzzy-matcher
我们的User.javaclass有这些属性
- 用户名
- 名字
- 姓氏
- 地址
- 等....
我们的数据库中有 1000 多个用户,并希望 运行 通过模糊匹配器帮助检测重复项。
任何可以帮助我们更好地理解库的代码片段都会有所帮助
此处 User
对象映射到 Document
而每个属性都需要映射到 fuzzy-matcher
Element
对象
如果您在 java 中有一个 User
对象的集合,您可以像这样将其转换为 Document/Element 个对象
List<User> users = // fetch data from db
List<Document> documents = users.stream().map(user -> {
return new Document.Builder(userId)
.addElement(new Element.Builder<String>().setValue(user.getFirstName() + " " + user.getLastName()).setType(NAME).createElement())
.addElement(new Element.Builder<String>().setValue(user.getAddress()).setType(ADDRESS).createElement())
.createDocument();
}).collect(Collectors.toList());
获得文档列表后,您可以将其传递给 MatchService 中的方法之一以触发模糊匹配
MatchService matchService = new MatchService();
Map<String, List<Match<Document>>> result = matchService.applyMatchByDocId(documents);
请注意,上述方法将 return 您得到一个按 userId
分组的结果