- Java 6 –
The RB07 is written as an applet in Java 6.
but due to the computational demands of the dynamic interface,
Java was required. Every mouseover of a facet requires
a new set of results to be computed and displayed.
To maintain the responsiveness of the user interface,
these computations must happen in less than about 250ms
and are computed by the Java applet running in the client's
web browser. To achieve this, each document has an associated
array of Java BitSets that store the facet information.
These BitSets are then ANDed or ORed together as needed
to compute the query results.
- SOLR/Lucene –
Unlike some previous RB versions, in the RB07 there is no
traditional relational database that stores the
data. Instead, when we decided to implement full-text
search capabilities, we chose to store all the data
index. In addition, all the facet
data is stored in a serialized Java data structure
that is loaded on start-up. This is requried
for the fast calculation of the dynamic queries
in the user interface.
SOLR provides a web service that the RB07 uses
to do full-text searches over the dataset
and also to retrieve result fields that are
not stored in the facet data structure.
The RB07 uses XML configuration files to describe
an instance and the data objects (i.e. the documents
to be indexed).
The example files linked to below were used to create
Understanding the RB07 demo.
The first type of XML configuration file is the RB instance description
file. This file describes the facets, facet values, and
result fields that make up this RB instance.
The RB instance description also includes a list of all the
data description files (see below) for this instance.
Here is a link to an example
The second type of XML configuration file is a data description
file that specifies the facet values that apply to each document
to be included in the instance.
These data description files use a format that can be loaded
directly into SOLR if desired.
Below are links to
example data description files: