88package org .elasticsearch .xpack .inference .rank .textsimilarity ;
99
1010import org .elasticsearch .plugins .Plugin ;
11+ import org .elasticsearch .search .SearchHit ;
1112import org .elasticsearch .search .rank .RankBuilder ;
1213import org .elasticsearch .search .rank .rerank .AbstractRerankerIT ;
1314import org .elasticsearch .xpack .inference .LocalStateInferencePlugin ;
1617import java .util .List ;
1718
1819import static org .elasticsearch .index .query .QueryBuilders .boolQuery ;
20+ import static org .elasticsearch .index .query .QueryBuilders .constantScoreQuery ;
1921import static org .elasticsearch .index .query .QueryBuilders .matchQuery ;
2022import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertHitCount ;
2123import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .assertNoFailuresAndResponse ;
24+ import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .hasId ;
25+ import static org .elasticsearch .test .hamcrest .ElasticsearchAssertions .hasRank ;
2226
2327public class TextSimilarityRankMultiNodeTests extends AbstractRerankerIT {
2428
@@ -84,11 +88,11 @@ public void testRerankerAllowedFailureNoExceptions() throws Exception {
8488
8589 assertNoFailuresAndResponse (
8690 prepareSearch ().setQuery (
87- boolQuery ().should (matchQuery (searchField , "A" ))
88- .should (matchQuery (searchField , "B" ))
89- .should (matchQuery (searchField , "C" ))
90- .should (matchQuery (searchField , "D" ))
91- .should (matchQuery (searchField , "E" ))
91+ boolQuery ().should (constantScoreQuery ( matchQuery (searchField , "A" )). boost ( 10 ))
92+ .should (constantScoreQuery ( matchQuery (searchField , "B" )). boost ( 20 ))
93+ .should (constantScoreQuery ( matchQuery (searchField , "C" )). boost ( 30 ))
94+ .should (constantScoreQuery ( matchQuery (searchField , "D" )). boost ( 40 ))
95+ .should (constantScoreQuery ( matchQuery (searchField , "E" )). boost ( 50 ))
9296 )
9397 .setRankBuilder (
9498 getThrowingRankBuilder (
@@ -103,8 +107,16 @@ public void testRerankerAllowedFailureNoExceptions() throws Exception {
103107 .setAllowPartialSearchResults (true )
104108 .setSize (10 ),
105109 response -> {
106- // just check it returns 5 documents, the order will be random due to not getting reranked
107110 assertHitCount (response , 5L );
111+ int rank = 1 ;
112+ for (SearchHit searchHit : response .getHits ().getHits ()) {
113+ int id = 5 - (rank - 1 );
114+ assertThat (searchHit , hasId (String .valueOf (id )));
115+ assertThat (searchHit , hasRank (rank ));
116+ assertNotNull (searchHit .getFields ().get (searchField ));
117+ assertEquals (id * 10 , searchHit .getScore (), 0f );
118+ rank ++;
119+ }
108120 }
109121 );
110122 assertNoOpenContext (indexName );
0 commit comments