Skip to content

Commit bb14b8f

Browse files
author
Christoph Büscher
committed
Merge branch 'rankeval'
This commit adds a new module that provides an endpoint that can be used to evaluate search ranking results. Closes #19195
2 parents 10d2667 + 5406a9f commit bb14b8f

File tree

48 files changed

+5460
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+5460
-18
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ subprojects {
196196
"org.elasticsearch.plugin:parent-join-client:${version}": ':modules:parent-join',
197197
"org.elasticsearch.plugin:aggs-matrix-stats-client:${version}": ':modules:aggs-matrix-stats',
198198
"org.elasticsearch.plugin:percolator-client:${version}": ':modules:percolator',
199+
"org.elasticsearch.plugin:rank-eval-client:${version}": ':modules:rank-eval',
199200
]
200201

201202
for (final Version version : versionCollection.versionsIndexCompatibleWithCurrent) {

client/rest-high-level/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
compile "org.elasticsearch.client:elasticsearch-rest-client:${version}"
4040
compile "org.elasticsearch.plugin:parent-join-client:${version}"
4141
compile "org.elasticsearch.plugin:aggs-matrix-stats-client:${version}"
42+
compile "org.elasticsearch.plugin:rank-eval-client:${version}"
4243

4344
testCompile "org.elasticsearch.client:test:${version}"
4445
testCompile "org.elasticsearch.test:framework:${version}"
@@ -60,4 +61,4 @@ forbiddenApisMain {
6061
// specified
6162
signaturesURLs += [PrecommitTasks.getResource('/forbidden/http-signatures.txt')]
6263
signaturesURLs += [file('src/main/resources/forbidden/rest-high-level-signatures.txt').toURI().toURL()]
63-
}
64+
}

client/rest-high-level/src/test/java/org/elasticsearch/client/RestHighLevelClientTests.java

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,6 @@
2121

2222
import com.fasterxml.jackson.core.JsonParseException;
2323

24-
import org.elasticsearch.Build;
25-
import org.elasticsearch.ElasticsearchException;
26-
import org.elasticsearch.Version;
27-
import org.elasticsearch.action.ActionListener;
28-
import org.elasticsearch.action.ActionRequest;
29-
import org.elasticsearch.action.ActionRequestValidationException;
30-
import org.elasticsearch.action.main.MainRequest;
31-
import org.elasticsearch.action.main.MainResponse;
32-
import org.elasticsearch.action.search.ClearScrollRequest;
33-
import org.elasticsearch.action.search.ClearScrollResponse;
34-
import org.elasticsearch.action.search.SearchResponse;
35-
import org.elasticsearch.action.search.SearchResponseSections;
36-
import org.elasticsearch.action.search.SearchScrollRequest;
37-
import org.elasticsearch.action.search.ShardSearchFailure;
3824
import org.apache.http.Header;
3925
import org.apache.http.HttpEntity;
4026
import org.apache.http.HttpHost;
@@ -49,6 +35,20 @@
4935
import org.apache.http.message.BasicRequestLine;
5036
import org.apache.http.message.BasicStatusLine;
5137
import org.apache.http.nio.entity.NStringEntity;
38+
import org.elasticsearch.Build;
39+
import org.elasticsearch.ElasticsearchException;
40+
import org.elasticsearch.Version;
41+
import org.elasticsearch.action.ActionListener;
42+
import org.elasticsearch.action.ActionRequest;
43+
import org.elasticsearch.action.ActionRequestValidationException;
44+
import org.elasticsearch.action.main.MainRequest;
45+
import org.elasticsearch.action.main.MainResponse;
46+
import org.elasticsearch.action.search.ClearScrollRequest;
47+
import org.elasticsearch.action.search.ClearScrollResponse;
48+
import org.elasticsearch.action.search.SearchResponse;
49+
import org.elasticsearch.action.search.SearchResponseSections;
50+
import org.elasticsearch.action.search.SearchScrollRequest;
51+
import org.elasticsearch.action.search.ShardSearchFailure;
5252
import org.elasticsearch.cluster.ClusterName;
5353
import org.elasticsearch.common.CheckedFunction;
5454
import org.elasticsearch.common.xcontent.NamedXContentRegistry;
@@ -57,6 +57,10 @@
5757
import org.elasticsearch.common.xcontent.XContentParser;
5858
import org.elasticsearch.common.xcontent.cbor.CborXContent;
5959
import org.elasticsearch.common.xcontent.smile.SmileXContent;
60+
import org.elasticsearch.index.rankeval.DiscountedCumulativeGain;
61+
import org.elasticsearch.index.rankeval.EvaluationMetric;
62+
import org.elasticsearch.index.rankeval.MeanReciprocalRank;
63+
import org.elasticsearch.index.rankeval.PrecisionAtK;
6064
import org.elasticsearch.join.aggregations.ChildrenAggregationBuilder;
6165
import org.elasticsearch.rest.RestStatus;
6266
import org.elasticsearch.search.SearchHits;
@@ -648,7 +652,7 @@ public void testDefaultNamedXContents() {
648652

649653
public void testProvidedNamedXContents() {
650654
List<NamedXContentRegistry.Entry> namedXContents = RestHighLevelClient.getProvidedNamedXContents();
651-
assertEquals(2, namedXContents.size());
655+
assertEquals(5, namedXContents.size());
652656
Map<Class<?>, Integer> categories = new HashMap<>();
653657
List<String> names = new ArrayList<>();
654658
for (NamedXContentRegistry.Entry namedXContent : namedXContents) {
@@ -658,10 +662,14 @@ public void testProvidedNamedXContents() {
658662
categories.put(namedXContent.categoryClass, counter + 1);
659663
}
660664
}
661-
assertEquals(1, categories.size());
665+
assertEquals(2, categories.size());
662666
assertEquals(Integer.valueOf(2), categories.get(Aggregation.class));
663667
assertTrue(names.contains(ChildrenAggregationBuilder.NAME));
664668
assertTrue(names.contains(MatrixStatsAggregationBuilder.NAME));
669+
assertEquals(Integer.valueOf(3), categories.get(EvaluationMetric.class));
670+
assertTrue(names.contains(PrecisionAtK.NAME));
671+
assertTrue(names.contains(DiscountedCumulativeGain.NAME));
672+
assertTrue(names.contains(MeanReciprocalRank.NAME));
665673
}
666674

667675
private static class TrackingActionListener implements ActionListener<Integer> {

client/transport/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ dependencies {
3232
compile "org.elasticsearch.plugin:lang-mustache-client:${version}"
3333
compile "org.elasticsearch.plugin:percolator-client:${version}"
3434
compile "org.elasticsearch.plugin:parent-join-client:${version}"
35+
compile "org.elasticsearch.plugin:rank-eval-client:${version}"
3536
testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
3637
testCompile "junit:junit:${versions.junit}"
3738
testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
@@ -54,4 +55,4 @@ namingConventions {
5455
testClass = 'com.carrotsearch.randomizedtesting.RandomizedTest'
5556
//we don't have integration tests
5657
skipIntegTestInDisguise = true
57-
}
58+
}

docs/Versions.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ ifeval::["{release-state}"=="unreleased"]
3737
:parent-join-client-javadoc: https://snapshots.elastic.co/javadoc/org/elasticsearch/plugin/parent-join-client/{version}-SNAPSHOT
3838
:percolator-client-javadoc: https://snapshots.elastic.co/javadoc/org/elasticsearch/plugin/percolator-client/{version}-SNAPSHOT
3939
:matrixstats-client-javadoc: https://snapshots.elastic.co/javadoc/org/elasticsearch/plugin/aggs-matrix-stats-client/{version}-SNAPSHOT
40+
:rank-eval-client-javadoc: https://snapshots.elastic.co/javadoc/org/elasticsearch/plugin/rank-eval-client/{version}-SNAPSHOT
4041
endif::[]
4142

4243
ifeval::["{release-state}"!="unreleased"]
@@ -49,6 +50,7 @@ ifeval::["{release-state}"!="unreleased"]
4950
:parent-join-client-javadoc: https://artifacts.elastic.co/javadoc/org/elasticsearch/plugin/parent-join-client/{version}
5051
:percolator-client-javadoc: https://artifacts.elastic.co/javadoc/org/elasticsearch/plugin/percolator-client/{version}
5152
:matrixstats-client-javadoc: https://artifacts.elastic.co/javadoc/org/elasticsearch/plugin/aggs-matrix-stats-client/{version}
53+
:rank-eval-client-javadoc: https://artifacts.elastic.co/javadoc/org/elasticsearch/plugin/rank-eval-client/{version}
5254
endif::[]
5355

5456
///////

docs/reference/search.asciidoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,5 @@ include::search/explain.asciidoc[]
162162
include::search/profile.asciidoc[]
163163

164164
include::search/field-caps.asciidoc[]
165+
166+
include::search/rank-eval.asciidoc[]

0 commit comments

Comments
 (0)