Compile using make all distFunc=<option> where <option> can be one of the following distance functions:
- L1, for Manhattan Distance
- L2, for Euclidean Distance
- ED, for Edit Distance
Two executable files are generated; range for range queries and knn for kNN queries. See examples below for correct usage.
We tried to be as consistent as possible when it comes to parameters:
| Parameters | README |
|---|---|
| -l | Linear scan. When used for kNN queries, use -n to set the number of neighbors. |
| -s | Standard version. When used for kNN queries, use -n to set the number of neighbors. |
| -m | Standard version with mediocre cracking. When used for kNN queries, use -n to set the number of neighbors. |
| -c | Standard version with mediocre cracking and Caching |
| -t | Threshold value to be used |
| -n | Number of neighbors for kNN queries |
Note that for kNN queries only methods -l, -s, -m are available.
-
Contains all the required methods for the tree index structure.
-
Contains the code used for the range query experiments.
-
$ ./range -l datasets/mnist50D_data.txt datasets/mnist50D_queries.txt
-
$ ./range -c -t 128 datasets/mnist50D_data.txt datasets/mnist50D_queries.txt
-
-
Contains the code used for the kNN query experiments.
-
$ ./knn -l -n 5 datasets/mnist50D_data.txt datasets/mnist50D_queries.txt
-
$ ./knn -m -t 128 -n 5 datasets/mnist50D_data.txt datasets/mnist50D_queries.txt
-