2020package org .elasticsearch .index .rankeval ;
2121
2222import org .elasticsearch .ElasticsearchException ;
23+ import org .elasticsearch .action .admin .indices .alias .IndicesAliasesRequest .AliasActions ;
2324import org .elasticsearch .action .search .SearchRequest ;
2425import org .elasticsearch .action .support .IndicesOptions ;
2526import org .elasticsearch .index .IndexNotFoundException ;
4041import java .util .Set ;
4142
4243import static org .elasticsearch .index .rankeval .EvaluationMetric .filterUnknownDocuments ;
44+ import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertAcked ;
4345import static org .hamcrest .Matchers .instanceOf ;
4446
4547public class RankEvalRequestIT extends ESIntegTestCase {
4648
49+ private static final String TEST_INDEX = "test" ;
50+ private static final String INDEX_ALIAS = "alias0" ;
4751 private static final int RELEVANT_RATING_1 = 1 ;
4852
4953 @ Override
@@ -58,20 +62,23 @@ protected Collection<Class<? extends Plugin>> nodePlugins() {
5862
5963 @ Before
6064 public void setup () {
61- createIndex ("test" );
65+ createIndex (TEST_INDEX );
6266 ensureGreen ();
6367
64- client ().prepareIndex ("test" , "testtype" ).setId ("1" )
68+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("1" )
6569 .setSource ("text" , "berlin" , "title" , "Berlin, Germany" , "population" , 3670622 ).get ();
66- client ().prepareIndex ("test" , "testtype" ).setId ("2" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
67- client ().prepareIndex ("test" , "testtype" ).setId ("3" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
68- client ().prepareIndex ("test" , "testtype" ).setId ("4" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
69- client ().prepareIndex ("test" , "testtype" ).setId ("5" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
70- client ().prepareIndex ("test" , "testtype" ).setId ("6" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
70+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("2" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
71+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("3" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
72+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("4" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
73+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("5" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
74+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("6" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
7175
7276 // add another index for testing closed indices etc...
7377 client ().prepareIndex ("test2" , "testtype" ).setId ("7" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
7478 refresh ();
79+
80+ // set up an alias that can also be used in tests
81+ assertAcked (client ().admin ().indices ().prepareAliases ().addAliasAction (AliasActions .add ().index (TEST_INDEX ).alias (INDEX_ALIAS )));
7582 }
7683
7784 /**
@@ -101,7 +108,8 @@ public void testPrecisionAtRequest() {
101108 RankEvalAction .INSTANCE , new RankEvalRequest ());
102109 builder .setRankEvalSpec (task );
103110
104- RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ().indices ("test" ))
111+ String indexToUse = randomBoolean () ? TEST_INDEX : INDEX_ALIAS ;
112+ RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ().indices (indexToUse ))
105113 .actionGet ();
106114 // the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
107115 // second is 1/6, divided by 2 to get the average
@@ -143,7 +151,7 @@ public void testPrecisionAtRequest() {
143151 metric = new PrecisionAtK (1 , false , 3 );
144152 task = new RankEvalSpec (specifications , metric );
145153
146- builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { "test" }));
154+ builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { TEST_INDEX }));
147155
148156 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
149157 // if we look only at top 3 documente, the expected P@3 for the first query is
@@ -163,19 +171,19 @@ public void testDCGRequest() {
163171
164172 List <RatedRequest > specifications = new ArrayList <>();
165173 List <RatedDocument > ratedDocs = Arrays .asList (
166- new RatedDocument ("test" , "1" , 3 ),
167- new RatedDocument ("test" , "2" , 2 ),
168- new RatedDocument ("test" , "3" , 3 ),
169- new RatedDocument ("test" , "4" , 0 ),
170- new RatedDocument ("test" , "5" , 1 ),
171- new RatedDocument ("test" , "6" , 2 ));
174+ new RatedDocument (TEST_INDEX , "1" , 3 ),
175+ new RatedDocument (TEST_INDEX , "2" , 2 ),
176+ new RatedDocument (TEST_INDEX , "3" , 3 ),
177+ new RatedDocument (TEST_INDEX , "4" , 0 ),
178+ new RatedDocument (TEST_INDEX , "5" , 1 ),
179+ new RatedDocument (TEST_INDEX , "6" , 2 ));
172180 specifications .add (new RatedRequest ("amsterdam_query" , ratedDocs , testQuery ));
173181
174182 DiscountedCumulativeGain metric = new DiscountedCumulativeGain (false , null , 10 );
175183 RankEvalSpec task = new RankEvalSpec (specifications , metric );
176184
177185 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
178- new RankEvalRequest (task , new String [] { "test" }));
186+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
179187
180188 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
181189 assertEquals (DiscountedCumulativeGainTests .EXPECTED_DCG , response .getEvaluationResult (), 10E-14 );
@@ -184,7 +192,7 @@ public void testDCGRequest() {
184192 metric = new DiscountedCumulativeGain (false , null , 3 );
185193 task = new RankEvalSpec (specifications , metric );
186194
187- builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { "test" }));
195+ builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { TEST_INDEX }));
188196
189197 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
190198 assertEquals (12.39278926071437 , response .getEvaluationResult (), 10E-14 );
@@ -203,7 +211,7 @@ public void testMRRRequest() {
203211 RankEvalSpec task = new RankEvalSpec (specifications , metric );
204212
205213 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
206- new RankEvalRequest (task , new String [] { "test" }));
214+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
207215
208216 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
209217 // the expected reciprocal rank for the amsterdam_query is 1/5
@@ -216,7 +224,7 @@ public void testMRRRequest() {
216224 metric = new MeanReciprocalRank (1 , 3 );
217225 task = new RankEvalSpec (specifications , metric );
218226
219- builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { "test" }));
227+ builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE , new RankEvalRequest (task , new String [] { TEST_INDEX }));
220228
221229 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
222230 // limiting to top 3 results, the amsterdam_query has no relevant document in it
@@ -247,7 +255,7 @@ public void testBadQuery() {
247255 RankEvalSpec task = new RankEvalSpec (specifications , new PrecisionAtK ());
248256
249257 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
250- new RankEvalRequest (task , new String [] { "test" }));
258+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
251259 builder .setRankEvalSpec (task );
252260
253261 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
@@ -267,7 +275,7 @@ public void testIndicesOptions() {
267275 specifications .add (new RatedRequest ("amsterdam_query" , relevantDocs , amsterdamQuery ));
268276 RankEvalSpec task = new RankEvalSpec (specifications , new PrecisionAtK ());
269277
270- RankEvalRequest request = new RankEvalRequest (task , new String [] { "test" , "test2" });
278+ RankEvalRequest request = new RankEvalRequest (task , new String [] { TEST_INDEX , "test2" });
271279 request .setRankEvalSpec (task );
272280
273281 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , request ).actionGet ();
0 commit comments