drop dataverse fuzzyjoin if exists;

create dataverse fuzzyjoin;

use dataverse fuzzyjoin;

create type UserType as open {
  uid: int32, 
  name: string,
  lottery_numbers: [int32],
  interests: <string>
}

create type VisitorType as open {
  vid: int32, 
  name: string,
  lottery_numbers: [int32],
  interests: <string>
}

create dataset Users(UserType) partitioned by key uid;
create dataset Visitors(VisitorType) partitioned by key vid;

load dataset Users from nc1:'data/users-visitors-small/users.json';
load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';

write output to nc1:'rttest/fuzzyjoin_user-vis-lot-aqlplus_3.adm';

set simthreshold '.5f';

for $user in dataset('Users')
for $visitor in dataset('Visitors')
where $visitor.lottery_numbers ~= $user.lottery_numbers
order by $user.uid, $visitor.vid
return {'user': $user, 'visitor': $visitor}
