blob: e8a7f74023a8f6c1adbcd94315d0d4e541b828f5 [file] [log] [blame]
icetindil9d0004a2014-04-28 14:16:49 -07001/*
Ian Maxon857dc132015-09-25 17:13:19 -07002 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19/*
icetindil9d0004a2014-04-28 14:16:49 -070020 * Description : Fuzzy joins two datasets, DBLP and CSX, based on the edit-distance-contains function of their authors.
21 * DBLP has a 3-gram index on authors, and we expect the join to be transformed into an indexed nested-loop join.
22 * Success : Yes
23 */
24
25drop dataverse test if exists;
26create dataverse test;
27use dataverse test;
28
29create type DBLPType as closed {
30 id: int32,
31 dblpid: string,
32 title: string,
33 authors: string,
34 misc: string
35}
36
37create type CSXType as closed {
38 id: int32,
39 csxid: string,
40 title: string,
41 authors: string,
42 misc: string
43}
44
45create dataset DBLP(DBLPType) primary key id;
46
47create dataset CSX(CSXType) primary key id;
48
49create index ngram_index on DBLP(authors) type ngram(3);
50
51write output to nc1:"rttest/inverted-index-join_ngram-edit-distance-contains.adm";
52
53for $a in dataset('DBLP')
54for $b in dataset('CSX')
55where edit-distance-contains($a.authors, $b.authors, 3)[0] and $a.id < $b.id
Ian Maxon857dc132015-09-25 17:13:19 -070056return {"arec": $a, "brec": $b }