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 {
48+
49+ private static final String TEST_INDEX = "test" ;
50+ private static final String INDEX_ALIAS = "alias0" ;
51+
4652 @ Override
4753 protected Collection <Class <? extends Plugin >> transportClientPlugins () {
4854 return Arrays .asList (RankEvalPlugin .class );
@@ -55,20 +61,23 @@ protected Collection<Class<? extends Plugin>> nodePlugins() {
5561
5662 @ Before
5763 public void setup () {
58- createIndex ("test" );
64+ createIndex (TEST_INDEX );
5965 ensureGreen ();
6066
61- client ().prepareIndex ("test" , "testtype" ).setId ("1" )
67+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("1" )
6268 .setSource ("text" , "berlin" , "title" , "Berlin, Germany" , "population" , 3670622 ).get ();
63- client ().prepareIndex ("test" , "testtype" ).setId ("2" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
64- client ().prepareIndex ("test" , "testtype" ).setId ("3" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
65- client ().prepareIndex ("test" , "testtype" ).setId ("4" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
66- client ().prepareIndex ("test" , "testtype" ).setId ("5" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
67- client ().prepareIndex ("test" , "testtype" ).setId ("6" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
69+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("2" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
70+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("3" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
71+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("4" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
72+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("5" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
73+ client ().prepareIndex (TEST_INDEX , "testtype" ).setId ("6" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
6874
6975 // add another index for testing closed indices etc...
7076 client ().prepareIndex ("test2" , "testtype" ).setId ("7" ).setSource ("text" , "amsterdam" , "population" , 851573 ).get ();
7177 refresh ();
78+
79+ // set up an alias that can also be used in tests
80+ assertAcked (client ().admin ().indices ().prepareAliases ().addAliasAction (AliasActions .add ().index (TEST_INDEX ).alias (INDEX_ALIAS )));
7281 }
7382
7483 /**
@@ -98,7 +107,9 @@ public void testPrecisionAtRequest() {
98107 RankEvalAction .INSTANCE , new RankEvalRequest ());
99108 builder .setRankEvalSpec (task );
100109
101- RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ().indices ("test" ))
110+ // String indexToUse = randomBoolean() ? TEST_INDEX : INDEX_ALIAS;
111+ String indexToUse = INDEX_ALIAS ;
112+ RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ().indices (indexToUse ))
102113 .actionGet ();
103114 // the expected Prec@ for the first query is 4/6 and the expected Prec@ for the
104115 // second is 1/6, divided by 2 to get the average
@@ -140,7 +151,7 @@ public void testPrecisionAtRequest() {
140151 metric = new PrecisionAtK (1 , false , 3 );
141152 task = new RankEvalSpec (specifications , metric );
142153
143- 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 }));
144155
145156 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
146157 // if we look only at top 3 documente, the expected P@3 for the first query is
@@ -160,19 +171,19 @@ public void testDCGRequest() {
160171
161172 List <RatedRequest > specifications = new ArrayList <>();
162173 List <RatedDocument > ratedDocs = Arrays .asList (
163- new RatedDocument ("test" , "1" , 3 ),
164- new RatedDocument ("test" , "2" , 2 ),
165- new RatedDocument ("test" , "3" , 3 ),
166- new RatedDocument ("test" , "4" , 0 ),
167- new RatedDocument ("test" , "5" , 1 ),
168- 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 ));
169180 specifications .add (new RatedRequest ("amsterdam_query" , ratedDocs , testQuery ));
170181
171182 DiscountedCumulativeGain metric = new DiscountedCumulativeGain (false , null , 10 );
172183 RankEvalSpec task = new RankEvalSpec (specifications , metric );
173184
174185 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
175- new RankEvalRequest (task , new String [] { "test" }));
186+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
176187
177188 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
178189 assertEquals (DiscountedCumulativeGainTests .EXPECTED_DCG , response .getEvaluationResult (), 10E-14 );
@@ -181,7 +192,7 @@ public void testDCGRequest() {
181192 metric = new DiscountedCumulativeGain (false , null , 3 );
182193 task = new RankEvalSpec (specifications , metric );
183194
184- 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 }));
185196
186197 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
187198 assertEquals (12.39278926071437 , response .getEvaluationResult (), 10E-14 );
@@ -200,7 +211,7 @@ public void testMRRRequest() {
200211 RankEvalSpec task = new RankEvalSpec (specifications , metric );
201212
202213 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
203- new RankEvalRequest (task , new String [] { "test" }));
214+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
204215
205216 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
206217 // the expected reciprocal rank for the amsterdam_query is 1/5
@@ -213,7 +224,7 @@ public void testMRRRequest() {
213224 metric = new MeanReciprocalRank (1 , 3 );
214225 task = new RankEvalSpec (specifications , metric );
215226
216- 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 }));
217228
218229 response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
219230 // limiting to top 3 results, the amsterdam_query has no relevant document in it
@@ -244,7 +255,7 @@ public void testBadQuery() {
244255 RankEvalSpec task = new RankEvalSpec (specifications , new PrecisionAtK ());
245256
246257 RankEvalRequestBuilder builder = new RankEvalRequestBuilder (client (), RankEvalAction .INSTANCE ,
247- new RankEvalRequest (task , new String [] { "test" }));
258+ new RankEvalRequest (task , new String [] { TEST_INDEX }));
248259 builder .setRankEvalSpec (task );
249260
250261 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , builder .request ()).actionGet ();
@@ -264,7 +275,7 @@ public void testIndicesOptions() {
264275 specifications .add (new RatedRequest ("amsterdam_query" , relevantDocs , amsterdamQuery ));
265276 RankEvalSpec task = new RankEvalSpec (specifications , new PrecisionAtK ());
266277
267- RankEvalRequest request = new RankEvalRequest (task , new String [] { "test" , "test2" });
278+ RankEvalRequest request = new RankEvalRequest (task , new String [] { TEST_INDEX , "test2" });
268279 request .setRankEvalSpec (task );
269280
270281 RankEvalResponse response = client ().execute (RankEvalAction .INSTANCE , request ).actionGet ();
@@ -322,7 +333,7 @@ public void testIndicesOptions() {
322333 private static List <RatedDocument > createRelevant (String ... docs ) {
323334 List <RatedDocument > relevant = new ArrayList <>();
324335 for (String doc : docs ) {
325- relevant .add (new RatedDocument ("test" , doc , TestRatingEnum .RELEVANT .ordinal ()));
336+ relevant .add (new RatedDocument (TEST_INDEX , doc , TestRatingEnum .RELEVANT .ordinal ()));
326337 }
327338 return relevant ;
328339 }
0 commit comments