Skip to content
Andrea Gazzarini edited this page Jun 29, 2018 · 11 revisions

The RRE Maven Plugin is the component which is in charge of executing the RRE evaluation process during a Maven build cycle. The following RRE Maven plugin are available:

  • io.sease:rre-maven-solr-plugin:<version>: for Apache Solr
  • io.sease:rre-maven-elasticsearch-plugin:<version>: for Elasticsearch

You should replace the version placeholder with the platform version you want to use. We choose to go with the same versions of the target platforms so the association between the product and the plugin is easy to remember.
We are constantly updating the supported versions for both platform, but it's possible that your specific version couldn't yet in.

The following snippet provides an example of the (Solr in this case) plugin configuration.

<plugin>
    <groupId>io.sease</groupId>
    <artifactId>rre-maven-solr-plugin</artifactId>
    <version>7.1.0</version>
    <configuration>
        <configurations-folder>${basedir}/src/solr/configuration_sets</configurations-folder>
        <corpora-folder>${basedir}/src/solr/corpora</corpora-folder>
        <ratings-folder>${basedir}/src/solr/ratings</ratings-folder>
        <templates-folder>${basedir}/src/solr/templates</templates-folder>
        <fields>id,product_name</fields>
        <metrics>
            <param>io.sease.rre.core.domain.metrics.impl.Precision</param>
            <param>io.sease.rre.core.domain.metrics.impl.Recall</param>
            <param>io.sease.rre.core.domain.metrics.impl.ReciprocalRank</param>
            <param>io.sease.rre.core.domain.metrics.impl.AveragePrecision</param>
            <param>io.sease.rre.core.domain.metrics.impl.NDCGAtTen</param>
            <param>io.sease.rre.core.domain.metrics.impl.PrecisionAtOne</param>
            <param>io.sease.rre.core.domain.metrics.impl.PrecisionAtTwo</param>
            <param>io.sease.rre.core.domain.metrics.impl.PrecisionAtThree</param>
            <param>io.sease.rre.core.domain.metrics.impl.PrecisionAtTen</param>
        </metrics>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>evaluate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Where:

  • configurations-folder: the folder that contains the configuration sets. The content, as described here depends on the target search platform.
  • corpora-folder: the folder that contains the datasets. Each datasets must have the format required by the target search platform. See here for more details.
  • corpora-folder: the folder that contains one or more ratings/judgements set. See here for more details.
  • templates-folder: the folder that contains the query templates.
  • fields: RRE collects, for each query execution, the top 10 results. This parameter declares the stored fields that will be retained, for each result.
  • metrics: a list of metrics that will be computed in the evaluation process. Each metric is declared using its FQDN. See here for an updated list of all available metrics.

As you can see from the last part, you can bind the evaluation to a specific phase (package in the example above) or you can run it isolately with the following command:

> mvn rre:evaluate