Skip to content

Commit 85ae427

Browse files
authored
Merge pull request #240 from rosette-api/RLPNC-7519-fielded-address-to-record-matching
Add address fields
2 parents 266cdee + f0ac19a commit 85ae427

4 files changed

Lines changed: 72 additions & 55 deletions

File tree

examples/src/main/java/com/basistech/rosette/examples/RecordSimilarityExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ private void run() throws IOException {
9090
primaryNameField, NameField.UnfieldedName.builder().text("Ivan R").build(),
9191
dobField, DateField.FieldedDate.builder().date(dobHyphen).build(),
9292
dob2Field, DateField.FieldedDate.builder().date("1993/04/16").build(),
93-
addrField, AddressField.FieldedAddress.builder().address("123 Roadlane Ave").build()
93+
addrField, AddressField.FieldedAddress.builder().houseNumber("123").road("Roadlane Ave").build()
9494
)
9595
)
9696
).build()

json/src/test/java/com/basistech/rosette/apimodel/RecordSimilarityRequestTest.java

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,14 @@
4141
class RecordSimilarityRequestTest {
4242

4343
private static final ObjectMapper MAPPER = ApiModelMixinModule.setupObjectMapper(new ObjectMapper());
44-
45-
private static final String EXPECTED_JSON = "{\"fields\":{\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true},\"records\":{\"left\":[{\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob2\":{\"date\":\"1993/04/16\"},\"addr\":\"123 Roadlane Ave\",\"dob\":\"1993-04-16\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"primaryName\":\"Ivan R\",\"dob2\":{\"date\":\"1993/04/16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"},\"dob\":{\"date\":\"1993-04-16\"}}]}}";
46-
private static final String EXPECTED_JSON_WITH_PARAMS = "{\"fields\":{\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5},\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameters\":{\"timeDistanceWeight\":\"0.8\",\"stringDistanceWeight\":\"0.1\"}},\"records\":{\"left\":[{\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\",\"dob2\":{\"date\":\"1993/04/16\"}},{\"dob\":{\"date\":\"1993-04-16\"},\"primaryName\":{\"text\":\"Evan R\"}}],\"right\":[{\"dob\":{\"date\":\"1993-04-16\"},\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"}},{\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"},\"dob2\":{\"date\":\"1993/04/16\"}}]}}";
47-
private static final String EXPECTED_JSON_WITH_UNIVERSE = "{\"fields\":{\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameterUniverse\":\"myParameterUniverse\"},\"records\":{\"left\":[{\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob2\":{\"date\":\"1993/04/16\"},\"addr\":\"123 Roadlane Ave\",\"dob\":\"1993-04-16\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"primaryName\":\"Ivan R\",\"dob2\":{\"date\":\"1993/04/16\"},\"addr\":{\"address\":\"123 Roadlane Ave\"},\"dob\":{\"date\":\"1993-04-16\"}}]}}";
44+
private static final String EXPECTED_JSON = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5,\"scoreIfNull\":0.8}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"houseNumber\":\"123\",\"road\":\"Roadlane Ave\"}}]}}";
45+
private static final String EXPECTED_JSON_WITH_PARAMS = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameters\":{\"timeDistanceWeight\":\"0.8\",\"stringDistanceWeight\":\"0.1\"}},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"houseNumber\":\"123\",\"road\":\"Roadlane Ave\"}}]}}";
46+
private static final String EXPECTED_JSON_WITH_UNIVERSE = "{\"fields\":{\"dob2\":{\"type\":\"rni_date\",\"weight\":0.1},\"primaryName\":{\"type\":\"rni_name\",\"weight\":0.5},\"dob\":{\"type\":\"rni_date\",\"weight\":0.2},\"addr\":{\"type\":\"rni_address\",\"weight\":0.5}},\"properties\":{\"threshold\":0.7,\"includeExplainInfo\":true,\"parameterUniverse\":\"myParameterUniverse\"},\"records\":{\"left\":[{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":{\"text\":\"Ethan R\",\"entityType\":\"PERSON\",\"language\":\"eng\",\"languageOfOrigin\":\"eng\",\"script\":\"Latn\"},\"dob\":\"1993-04-16\",\"addr\":\"123 Roadlane Ave\"},{\"primaryName\":{\"text\":\"Evan R\"},\"dob\":{\"date\":\"1993-04-16\"}}],\"right\":[{\"primaryName\":{\"text\":\"Seth R\",\"language\":\"eng\"},\"dob\":{\"date\":\"1993-04-16\"}},{\"dob2\":{\"date\":\"1993/04/16\"},\"primaryName\":\"Ivan R\",\"dob\":{\"date\":\"1993-04-16\"},\"addr\":{\"houseNumber\":\"123\",\"road\":\"Roadlane Ave\"}}]}}";
4847

4948
private static final RecordSimilarityRequest EXPECTED_REQUEST = RecordSimilarityRequest.builder()
5049
.fields(Map.of(
51-
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build(),
52-
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).build(),
50+
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).scoreIfNull(0.8).build(),
51+
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).scoreIfNull(null).build(),
5352
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
5453
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build()))
5554
.properties(RecordSimilarityProperties.builder().threshold(0.7).includeExplainInfo(true).build())
@@ -82,18 +81,18 @@ class RecordSimilarityRequestTest {
8281
"primaryName", NameField.UnfieldedName.builder().text("Ivan R").build(),
8382
"dob", DateField.FieldedDate.builder().date("1993-04-16").build(),
8483
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
85-
"addr", AddressField.FieldedAddress.builder().address("123 Roadlane Ave").build()
84+
"addr", AddressField.FieldedAddress.builder().houseNumber("123").road("Roadlane Ave").build()
8685
)
8786
)
8887
).build()
8988
).build();
9089

9190
private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_PARAMS = RecordSimilarityRequest.builder()
9291
.fields(Map.of(
93-
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).scoreIfNull(null).build(),
94-
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).scoreIfNull(null).build(),
95-
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).scoreIfNull(null).build(),
96-
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).scoreIfNull(null).build()))
92+
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).build(),
93+
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
94+
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build(),
95+
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build()))
9796
.properties(RecordSimilarityProperties.builder()
9897
.threshold(0.7)
9998
.includeExplainInfo(true)
@@ -133,56 +132,56 @@ class RecordSimilarityRequestTest {
133132
"primaryName", NameField.UnfieldedName.builder().text("Ivan R").build(),
134133
"dob", DateField.FieldedDate.builder().date("1993-04-16").build(),
135134
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
136-
"addr", AddressField.FieldedAddress.builder().address("123 Roadlane Ave").build()
135+
"addr", AddressField.FieldedAddress.builder().houseNumber("123").road("Roadlane Ave").build()
137136
)
138137
)
139138
).build()
140139
).build();
141140

142141
private static final RecordSimilarityRequest EXPECTED_REQUEST_WITH_UNIVERSE = RecordSimilarityRequest.builder()
143142
.fields(Map.of(
144-
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).scoreIfNull(null).build(),
145-
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).scoreIfNull(null).build(),
146-
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).scoreIfNull(null).build(),
147-
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).scoreIfNull(null).build()))
143+
"dob", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.2).build(),
144+
"primaryName", RecordSimilarityFieldInfo.builder().type(RecordFieldType.NAME).weight(0.5).build(),
145+
"dob2", RecordSimilarityFieldInfo.builder().type(RecordFieldType.DATE).weight(0.1).build(),
146+
"addr", RecordSimilarityFieldInfo.builder().type(RecordFieldType.ADDRESS).weight(0.5).build()))
148147
.properties(RecordSimilarityProperties.builder()
149148
.threshold(0.7)
150149
.includeExplainInfo(true)
151150
.parameterUniverse("myParameterUniverse")
152151
.build())
153152
.records(RecordSimilarityRecords.builder()
154-
.left(
155-
List.of(
156-
Map.of(
157-
"primaryName", NameField.FieldedName.builder()
158-
.text("Ethan R").entityType("PERSON")
159-
.language(LanguageCode.ENGLISH)
160-
.languageOfOrigin(LanguageCode.ENGLISH)
161-
.script(ISO15924.Latn)
162-
.build(),
163-
"dob", DateField.UnfieldedDate.builder().date("1993-04-16").build(),
164-
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
165-
"addr", AddressField.UnfieldedAddress.builder().address("123 Roadlane Ave").build()
166-
),
167-
Map.of(
168-
"primaryName", NameField.FieldedName.builder().text("Evan R").build(),
169-
"dob", DateField.FieldedDate.builder().date("1993-04-16").build()
170-
)
171-
)
172-
).right(
173-
List.of(
174-
Map.of(
175-
"primaryName", NameField.FieldedName.builder().text("Seth R").language(LanguageCode.ENGLISH).build(),
176-
"dob", DateField.FieldedDate.builder().date("1993-04-16").build()
177-
),
178-
Map.of(
179-
"primaryName", NameField.UnfieldedName.builder().text("Ivan R").build(),
180-
"dob", DateField.FieldedDate.builder().date("1993-04-16").build(),
181-
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
182-
"addr", AddressField.FieldedAddress.builder().address("123 Roadlane Ave").build()
183-
)
184-
)
185-
).build()
153+
.left(
154+
List.of(
155+
Map.of(
156+
"primaryName", NameField.FieldedName.builder()
157+
.text("Ethan R").entityType("PERSON")
158+
.language(LanguageCode.ENGLISH)
159+
.languageOfOrigin(LanguageCode.ENGLISH)
160+
.script(ISO15924.Latn)
161+
.build(),
162+
"dob", DateField.UnfieldedDate.builder().date("1993-04-16").build(),
163+
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
164+
"addr", AddressField.UnfieldedAddress.builder().address("123 Roadlane Ave").build()
165+
),
166+
Map.of(
167+
"primaryName", NameField.FieldedName.builder().text("Evan R").build(),
168+
"dob", DateField.FieldedDate.builder().date("1993-04-16").build()
169+
)
170+
)
171+
).right(
172+
List.of(
173+
Map.of(
174+
"primaryName", NameField.FieldedName.builder().text("Seth R").language(LanguageCode.ENGLISH).build(),
175+
"dob", DateField.FieldedDate.builder().date("1993-04-16").build()
176+
),
177+
Map.of(
178+
"primaryName", NameField.UnfieldedName.builder().text("Ivan R").build(),
179+
"dob", DateField.FieldedDate.builder().date("1993-04-16").build(),
180+
"dob2", DateField.FieldedDate.builder().date("1993/04/16").build(),
181+
"addr", AddressField.FieldedAddress.builder().houseNumber("123").road("Roadlane Ave").build()
182+
)
183+
)
184+
).build()
186185
).build();
187186

188187
@Test

0 commit comments

Comments
 (0)