@@ -52,27 +52,17 @@ public void cleanup() {
5252 }
5353
5454 public void testSparseVectorQueryOnInferenceFieldIsInterceptedAndRewritten () throws IOException {
55+ float boost = randomFloat () * 5 ;
56+ String queryName = randomAlphaOfLength (5 );
5557 Map <String , InferenceFieldMetadata > inferenceFields = Map .of (
5658 FIELD_NAME ,
5759 new InferenceFieldMetadata (index .getName (), "inferenceId" , new String [] { FIELD_NAME }, null )
5860 );
5961 QueryRewriteContext context = createQueryRewriteContext (inferenceFields );
6062 QueryBuilder original = new SparseVectorQueryBuilder (FIELD_NAME , INFERENCE_ID , QUERY );
61- QueryBuilder rewritten = original .rewrite (context );
62- assertTrue (
63- "Expected query to be intercepted, but was [" + rewritten .getClass ().getName () + "]" ,
64- rewritten instanceof InterceptedQueryBuilderWrapper
65- );
66- InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper ) rewritten ;
67- assertTrue (intercepted .queryBuilder instanceof NestedQueryBuilder );
68- NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder ) intercepted .queryBuilder ;
69- assertEquals (SemanticTextField .getChunksFieldName (FIELD_NAME ), nestedQueryBuilder .path ());
70- QueryBuilder innerQuery = nestedQueryBuilder .query ();
71- assertTrue (innerQuery instanceof SparseVectorQueryBuilder );
72- SparseVectorQueryBuilder sparseVectorQueryBuilder = (SparseVectorQueryBuilder ) innerQuery ;
73- assertEquals (SemanticTextField .getEmbeddingsFieldName (FIELD_NAME ), sparseVectorQueryBuilder .getFieldName ());
74- assertEquals (INFERENCE_ID , sparseVectorQueryBuilder .getInferenceId ());
75- assertEquals (QUERY , sparseVectorQueryBuilder .getQuery ());
63+ original .boost (boost );
64+ original .queryName (queryName );
65+ testRewrittenInferenceQuery (context , original );
7666 }
7767
7868 public void testSparseVectorQueryOnInferenceFieldWithoutInferenceIdIsInterceptedAndRewritten () throws IOException {
@@ -82,21 +72,7 @@ public void testSparseVectorQueryOnInferenceFieldWithoutInferenceIdIsIntercepted
8272 );
8373 QueryRewriteContext context = createQueryRewriteContext (inferenceFields );
8474 QueryBuilder original = new SparseVectorQueryBuilder (FIELD_NAME , null , QUERY );
85- QueryBuilder rewritten = original .rewrite (context );
86- assertTrue (
87- "Expected query to be intercepted, but was [" + rewritten .getClass ().getName () + "]" ,
88- rewritten instanceof InterceptedQueryBuilderWrapper
89- );
90- InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper ) rewritten ;
91- assertTrue (intercepted .queryBuilder instanceof NestedQueryBuilder );
92- NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder ) intercepted .queryBuilder ;
93- assertEquals (SemanticTextField .getChunksFieldName (FIELD_NAME ), nestedQueryBuilder .path ());
94- QueryBuilder innerQuery = nestedQueryBuilder .query ();
95- assertTrue (innerQuery instanceof SparseVectorQueryBuilder );
96- SparseVectorQueryBuilder sparseVectorQueryBuilder = (SparseVectorQueryBuilder ) innerQuery ;
97- assertEquals (SemanticTextField .getEmbeddingsFieldName (FIELD_NAME ), sparseVectorQueryBuilder .getFieldName ());
98- assertEquals (INFERENCE_ID , sparseVectorQueryBuilder .getInferenceId ());
99- assertEquals (QUERY , sparseVectorQueryBuilder .getQuery ());
75+ testRewrittenInferenceQuery (context , original );
10076 }
10177
10278 public void testSparseVectorQueryOnNonInferenceFieldRemainsUnchanged () throws IOException {
@@ -110,36 +86,29 @@ public void testSparseVectorQueryOnNonInferenceFieldRemainsUnchanged() throws IO
11086 assertEquals (original , rewritten );
11187 }
11288
113- public void testBoostAndQueryNameOnSparseVectorQueryRewrite () throws IOException {
114- float BOOST = 5.0f ;
115- String QUERY_NAME = "sparse_vector_query" ;
116-
117- Map <String , InferenceFieldMetadata > inferenceFields = Map .of (
118- FIELD_NAME ,
119- new InferenceFieldMetadata (index .getName (), "inferenceId" , new String [] { FIELD_NAME }, null )
120- );
121- QueryRewriteContext context = createQueryRewriteContext (inferenceFields );
122- QueryBuilder original = new SparseVectorQueryBuilder (FIELD_NAME , INFERENCE_ID , QUERY );
123- original .boost (BOOST );
124- original .queryName (QUERY_NAME );
89+ private void testRewrittenInferenceQuery (QueryRewriteContext context , QueryBuilder original ) throws IOException {
12590 QueryBuilder rewritten = original .rewrite (context );
12691 assertTrue (
12792 "Expected query to be intercepted, but was [" + rewritten .getClass ().getName () + "]" ,
12893 rewritten instanceof InterceptedQueryBuilderWrapper
12994 );
13095 InterceptedQueryBuilderWrapper intercepted = (InterceptedQueryBuilderWrapper ) rewritten ;
131- assertEquals (BOOST , intercepted .boost (), 0.0f );
132- assertEquals (QUERY_NAME , intercepted .queryName ());
96+ assertEquals (original .boost (), intercepted .boost (), 0.0f );
97+ assertEquals (original .queryName (), intercepted .queryName ());
98+
13399 assertTrue (intercepted .queryBuilder instanceof NestedQueryBuilder );
134100 NestedQueryBuilder nestedQueryBuilder = (NestedQueryBuilder ) intercepted .queryBuilder ;
135101 assertEquals (SemanticTextField .getChunksFieldName (FIELD_NAME ), nestedQueryBuilder .path ());
102+ assertEquals (original .boost (), nestedQueryBuilder .boost (), 0.0f );
103+ assertEquals (original .queryName (), nestedQueryBuilder .queryName ());
104+
136105 QueryBuilder innerQuery = nestedQueryBuilder .query ();
137106 assertTrue (innerQuery instanceof SparseVectorQueryBuilder );
138107 SparseVectorQueryBuilder sparseVectorQueryBuilder = (SparseVectorQueryBuilder ) innerQuery ;
139108 assertEquals (SemanticTextField .getEmbeddingsFieldName (FIELD_NAME ), sparseVectorQueryBuilder .getFieldName ());
140109 assertEquals (INFERENCE_ID , sparseVectorQueryBuilder .getInferenceId ());
141110 assertEquals (QUERY , sparseVectorQueryBuilder .getQuery ());
142- assertEquals (BOOST , sparseVectorQueryBuilder .boost (), 5 .0f );
111+ assertEquals (1.0f , sparseVectorQueryBuilder .boost (), 0 .0f );
143112 assertNull (sparseVectorQueryBuilder .queryName ());
144113 }
145114
0 commit comments