@@ -127,9 +127,55 @@ public void testRetrieveDenseVectorFieldData() {
127127 }
128128 }
129129
130+ public void testNonIndexedDenseVectorField () throws IOException {
131+ createIndexWithDenseVector ("no_dense_vectors" );
132+
133+ int numDocs = randomIntBetween (10 , 100 );
134+ IndexRequestBuilder [] docs = new IndexRequestBuilder [numDocs ];
135+ for (int i = 0 ; i < numDocs ; i ++) {
136+ docs [i ] = prepareIndex ("no_dense_vectors" ).setId ("" + i ).setSource ("id" , String .valueOf (i ));
137+ }
138+
139+ indexRandom (true , docs );
140+
141+ var query = """
142+ FROM no_dense_vectors
143+ | KEEP id, vector
144+ """ ;
145+
146+ try (var resp = run (query )) {
147+ List <List <Object >> valuesList = EsqlTestUtils .getValuesList (resp );
148+ assertEquals (numDocs , valuesList .size ());
149+ valuesList .forEach (value -> {
150+ assertEquals (2 , value .size ());
151+ Integer id = (Integer ) value .get (0 );
152+ assertNotNull (id );
153+ Object vector = value .get (1 );
154+ assertNull (vector );
155+ });
156+ }
157+ }
158+
130159 @ Before
131160 public void setup () throws IOException {
132- var indexName = "test" ;
161+ createIndexWithDenseVector ("test" );
162+
163+ int numDims = randomIntBetween (32 , 64 ) * 2 ; // min 64, even number
164+ int numDocs = randomIntBetween (10 , 100 );
165+ IndexRequestBuilder [] docs = new IndexRequestBuilder [numDocs ];
166+ for (int i = 0 ; i < numDocs ; i ++) {
167+ List <Float > vector = new ArrayList <>(numDims );
168+ for (int j = 0 ; j < numDims ; j ++) {
169+ vector .add (randomFloat ());
170+ }
171+ docs [i ] = prepareIndex ("test" ).setId ("" + i ).setSource ("id" , String .valueOf (i ), "vector" , vector );
172+ indexedVectors .put (i , vector );
173+ }
174+
175+ indexRandom (true , docs );
176+ }
177+
178+ private void createIndexWithDenseVector (String indexName ) throws IOException {
133179 var client = client ().admin ().indices ();
134180 XContentBuilder mapping = XContentFactory .jsonBuilder ()
135181 .startObject ()
@@ -159,19 +205,5 @@ public void setup() throws IOException {
159205 .setMapping (mapping )
160206 .setSettings (settingsBuilder .build ());
161207 assertAcked (CreateRequest );
162-
163- int numDims = randomIntBetween (32 , 64 ) * 2 ; // min 64, even number
164- int numDocs = randomIntBetween (10 , 100 );
165- IndexRequestBuilder [] docs = new IndexRequestBuilder [numDocs ];
166- for (int i = 0 ; i < numDocs ; i ++) {
167- List <Float > vector = new ArrayList <>(numDims );
168- for (int j = 0 ; j < numDims ; j ++) {
169- vector .add (randomFloat ());
170- }
171- docs [i ] = prepareIndex ("test" ).setId ("" + i ).setSource ("id" , String .valueOf (i ), "vector" , vector );
172- indexedVectors .put (i , vector );
173- }
174-
175- indexRandom (true , docs );
176208 }
177209}
0 commit comments