|
@@ -88,11 +88,11 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
PrecisionAtK metric = new PrecisionAtK(1, false, 10);
|
|
PrecisionAtK metric = new PrecisionAtK(1, false, 10);
|
|
RankEvalSpec task = new RankEvalSpec(specifications, metric);
|
|
RankEvalSpec task = new RankEvalSpec(specifications, metric);
|
|
|
|
|
|
- RankEvalRequestBuilder builder = new RankEvalRequestBuilder(client(), RankEvalAction.INSTANCE, new RankEvalRequest());
|
|
|
|
|
|
+ RankEvalRequestBuilder builder = new RankEvalRequestBuilder(client(), RankEvalPlugin.ACTION, new RankEvalRequest());
|
|
builder.setRankEvalSpec(task);
|
|
builder.setRankEvalSpec(task);
|
|
|
|
|
|
String indexToUse = randomBoolean() ? TEST_INDEX : INDEX_ALIAS;
|
|
String indexToUse = randomBoolean() ? TEST_INDEX : INDEX_ALIAS;
|
|
- RankEvalResponse response = client().execute(RankEvalAction.INSTANCE, builder.request().indices(indexToUse)).actionGet();
|
|
|
|
|
|
+ RankEvalResponse response = client().execute(RankEvalPlugin.ACTION, builder.request().indices(indexToUse)).actionGet();
|
|
// the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
|
|
// the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
|
|
// second is 1/6, divided by 2 to get the average
|
|
// second is 1/6, divided by 2 to get the average
|
|
double expectedPrecision = (1.0 / 6.0 + 4.0 / 6.0) / 2.0;
|
|
double expectedPrecision = (1.0 / 6.0 + 4.0 / 6.0) / 2.0;
|
|
@@ -133,9 +133,9 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
metric = new PrecisionAtK(1, false, 3);
|
|
metric = new PrecisionAtK(1, false, 3);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
|
|
|
|
- builder = new RankEvalRequestBuilder(client(), RankEvalAction.INSTANCE, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
+ builder = new RankEvalRequestBuilder(client(), RankEvalPlugin.ACTION, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
- response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
// if we look only at top 3 documente, the expected P@3 for the first query is
|
|
// if we look only at top 3 documente, the expected P@3 for the first query is
|
|
// 2/3 and the expected Prec@ for the second is 1/3, divided by 2 to get the average
|
|
// 2/3 and the expected Prec@ for the second is 1/3, divided by 2 to get the average
|
|
expectedPrecision = (1.0 / 3.0 + 2.0 / 3.0) / 2.0;
|
|
expectedPrecision = (1.0 / 3.0 + 2.0 / 3.0) / 2.0;
|
|
@@ -167,20 +167,20 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
|
|
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
client(),
|
|
client(),
|
|
- RankEvalAction.INSTANCE,
|
|
|
|
|
|
+ RankEvalPlugin.ACTION,
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
);
|
|
);
|
|
|
|
|
|
- RankEvalResponse response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ RankEvalResponse response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
assertEquals(DiscountedCumulativeGainTests.EXPECTED_DCG, response.getMetricScore(), 10E-14);
|
|
assertEquals(DiscountedCumulativeGainTests.EXPECTED_DCG, response.getMetricScore(), 10E-14);
|
|
|
|
|
|
// test that a different window size k affects the result
|
|
// test that a different window size k affects the result
|
|
metric = new DiscountedCumulativeGain(false, null, 3);
|
|
metric = new DiscountedCumulativeGain(false, null, 3);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
|
|
|
|
- builder = new RankEvalRequestBuilder(client(), RankEvalAction.INSTANCE, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
+ builder = new RankEvalRequestBuilder(client(), RankEvalPlugin.ACTION, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
- response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
assertEquals(12.39278926071437, response.getMetricScore(), 10E-14);
|
|
assertEquals(12.39278926071437, response.getMetricScore(), 10E-14);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -198,11 +198,11 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
|
|
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
client(),
|
|
client(),
|
|
- RankEvalAction.INSTANCE,
|
|
|
|
|
|
+ RankEvalPlugin.ACTION,
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
);
|
|
);
|
|
|
|
|
|
- RankEvalResponse response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ RankEvalResponse response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
// the expected reciprocal rank for the amsterdam_query is 1/5
|
|
// the expected reciprocal rank for the amsterdam_query is 1/5
|
|
// the expected reciprocal rank for the berlin_query is 1/1
|
|
// the expected reciprocal rank for the berlin_query is 1/1
|
|
// dividing by 2 to get the average
|
|
// dividing by 2 to get the average
|
|
@@ -213,9 +213,9 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
metric = new MeanReciprocalRank(1, 3);
|
|
metric = new MeanReciprocalRank(1, 3);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
task = new RankEvalSpec(specifications, metric);
|
|
|
|
|
|
- builder = new RankEvalRequestBuilder(client(), RankEvalAction.INSTANCE, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
+ builder = new RankEvalRequestBuilder(client(), RankEvalPlugin.ACTION, new RankEvalRequest(task, new String[] { TEST_INDEX }));
|
|
|
|
|
|
- response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
// limiting to top 3 results, the amsterdam_query has no relevant document in it
|
|
// limiting to top 3 results, the amsterdam_query has no relevant document in it
|
|
// the reciprocal rank for the berlin_query is 1/1
|
|
// the reciprocal rank for the berlin_query is 1/1
|
|
// dividing by 2 to get the average
|
|
// dividing by 2 to get the average
|
|
@@ -243,12 +243,12 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
|
|
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
RankEvalRequestBuilder builder = new RankEvalRequestBuilder(
|
|
client(),
|
|
client(),
|
|
- RankEvalAction.INSTANCE,
|
|
|
|
|
|
+ RankEvalPlugin.ACTION,
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
new RankEvalRequest(task, new String[] { TEST_INDEX })
|
|
);
|
|
);
|
|
builder.setRankEvalSpec(task);
|
|
builder.setRankEvalSpec(task);
|
|
|
|
|
|
- RankEvalResponse response = client().execute(RankEvalAction.INSTANCE, builder.request()).actionGet();
|
|
|
|
|
|
+ RankEvalResponse response = client().execute(RankEvalPlugin.ACTION, builder.request()).actionGet();
|
|
assertEquals(1, response.getFailures().size());
|
|
assertEquals(1, response.getFailures().size());
|
|
ElasticsearchException[] rootCauses = ElasticsearchException.guessRootCauses(response.getFailures().get("broken_query"));
|
|
ElasticsearchException[] rootCauses = ElasticsearchException.guessRootCauses(response.getFailures().get("broken_query"));
|
|
assertEquals("java.lang.NumberFormatException: For input string: \"noStringOnNumericFields\"", rootCauses[0].getCause().toString());
|
|
assertEquals("java.lang.NumberFormatException: For input string: \"noStringOnNumericFields\"", rootCauses[0].getCause().toString());
|
|
@@ -268,7 +268,7 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
RankEvalRequest request = new RankEvalRequest(task, new String[] { TEST_INDEX, "test2" });
|
|
RankEvalRequest request = new RankEvalRequest(task, new String[] { TEST_INDEX, "test2" });
|
|
request.setRankEvalSpec(task);
|
|
request.setRankEvalSpec(task);
|
|
|
|
|
|
- RankEvalResponse response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ RankEvalResponse response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
Detail details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
Detail details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
assertEquals(7, details.getRetrieved());
|
|
assertEquals(7, details.getRetrieved());
|
|
assertEquals(6, details.getRelevantRetrieved());
|
|
assertEquals(6, details.getRelevantRetrieved());
|
|
@@ -277,7 +277,7 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
assertTrue(indicesAdmin().prepareClose("test2").get().isAcknowledged());
|
|
assertTrue(indicesAdmin().prepareClose("test2").get().isAcknowledged());
|
|
|
|
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, "true", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, "true", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
assertEquals(6, details.getRetrieved());
|
|
assertEquals(6, details.getRetrieved());
|
|
assertEquals(5, details.getRelevantRetrieved());
|
|
assertEquals(5, details.getRelevantRetrieved());
|
|
@@ -285,37 +285,37 @@ public class RankEvalRequestIT extends ESIntegTestCase {
|
|
// test that ignore_unavailable=false or default settings throw an IndexClosedException
|
|
// test that ignore_unavailable=false or default settings throw an IndexClosedException
|
|
assertTrue(indicesAdmin().prepareClose("test2").get().isAcknowledged());
|
|
assertTrue(indicesAdmin().prepareClose("test2").get().isAcknowledged());
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, "false", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, "false", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
assertEquals(1, response.getFailures().size());
|
|
assertEquals(1, response.getFailures().size());
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexClosedException.class));
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexClosedException.class));
|
|
|
|
|
|
// test expand_wildcards
|
|
// test expand_wildcards
|
|
request = new RankEvalRequest(task, new String[] { "tes*" });
|
|
request = new RankEvalRequest(task, new String[] { "tes*" });
|
|
request.indicesOptions(IndicesOptions.fromParameters("none", "true", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters("none", "true", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
assertEquals(0, details.getRetrieved());
|
|
assertEquals(0, details.getRetrieved());
|
|
|
|
|
|
request.indicesOptions(IndicesOptions.fromParameters("open", null, null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters("open", null, null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
assertEquals(6, details.getRetrieved());
|
|
assertEquals(6, details.getRetrieved());
|
|
assertEquals(5, details.getRelevantRetrieved());
|
|
assertEquals(5, details.getRelevantRetrieved());
|
|
|
|
|
|
request.indicesOptions(IndicesOptions.fromParameters("closed", null, null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters("closed", null, null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
assertEquals(1, response.getFailures().size());
|
|
assertEquals(1, response.getFailures().size());
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexClosedException.class));
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexClosedException.class));
|
|
|
|
|
|
// test allow_no_indices
|
|
// test allow_no_indices
|
|
request = new RankEvalRequest(task, new String[] { "bad*" });
|
|
request = new RankEvalRequest(task, new String[] { "bad*" });
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, null, "true", "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, null, "true", "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
details = (PrecisionAtK.Detail) response.getPartialResults().get("amsterdam_query").getMetricDetails();
|
|
assertEquals(0, details.getRetrieved());
|
|
assertEquals(0, details.getRetrieved());
|
|
|
|
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, null, "false", "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
request.indicesOptions(IndicesOptions.fromParameters(null, null, "false", "false", SearchRequest.DEFAULT_INDICES_OPTIONS));
|
|
- response = client().execute(RankEvalAction.INSTANCE, request).actionGet();
|
|
|
|
|
|
+ response = client().execute(RankEvalPlugin.ACTION, request).actionGet();
|
|
assertEquals(1, response.getFailures().size());
|
|
assertEquals(1, response.getFailures().size());
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexNotFoundException.class));
|
|
assertThat(response.getFailures().get("amsterdam_query"), instanceOf(IndexNotFoundException.class));
|
|
}
|
|
}
|