One of our aims is to maintain an extensible framework so that other researcher can contribute to it and use it for their specific purposes. A central aspect of this extensibility is the possibility to add new index structures to the framework. To this end, an API exists that has to be implemented for each new index structure. You can find a documentation (JavaDoc style) of this interface at AIndexStructure -- Documentation. For contributing your own index-structure implementation, you have two possibilities: First your can provide Java-class files in the case you do not want reveal your source files. In this case, however we cannot verify your implementation, but list your index as unchecked with your name as contributor. Second, you can provide the sources, too. In this case, we will list you contribution as checked. In both cases, you can email your files directly to contribute If you like to contribute to different parts of QuEval, such as the storage structures or query scheduling and processing please contact us.
All of our index structures are loaded via reflection. The basic advantage is that you can program your index totally independent, copy your compiled .class file into the folder \index\structures and after restart the index is automatically available. QuEval simply scans this folders and loads every .class file that extends our interface AIndexStructure -- Documentation. In case you use setting up, the environment is simpler. Import all projects into eclipse. To start QuEval, create a new external tool configuration with working directory ${workspace_loc:/JarTest/Framework}$ and following arguments: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y -jar Framework.jar. Then create a new Remote Java Application using Project Testapp_Jar, lcalhost, and Port 8000. First, start the external tool configuration. You should see Listening for transport dt_socket at address: 8000 on the command line, then connect the remote application. We furthermore, recommend to extend the explicitly state maximum amount of heap the JVM is allowed to use via the -Xmx parameter.
Our interface contains several methods that need to be implemented in the following, we describe how to implement a simple index using a sequential scan. The complete source code of the sequential scan can be found in the package index.structures.compare of the index project.
These methods deliver meta information and thus, are easily implemented.
There are several methods for query processing. Note in the default variant there are methods for inserting data, exact-match, and knn query capability. However, we also have different variants supporting range queries and epsilon-distance queries. In case you want more information or learn about variable interfaces and multi product line please contact Reimar Schröter.
Project members:
Copyright Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.