From 24748708c63180a9f6ecef9c15c353ebb2ba10ad Mon Sep 17 00:00:00 2001 From: Alexander Reelsen Date: Tue, 2 Sep 2025 09:52:00 +0200 Subject: [PATCH 1/2] Allow fieldname as parameter --- src/queries/vector-queries/sparse-vector-query.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/queries/vector-queries/sparse-vector-query.js b/src/queries/vector-queries/sparse-vector-query.js index b17fe2b..4321466 100644 --- a/src/queries/vector-queries/sparse-vector-query.js +++ b/src/queries/vector-queries/sparse-vector-query.js @@ -1,6 +1,7 @@ 'use strict'; const { Query } = require('../../core'); +const { isNil } = require('lodash'); /** * The sparse vector query executes a query consisting of sparse vectors, such as built by a learned sparse retrieval model, @@ -15,8 +16,10 @@ const { Query } = require('../../core'); */ class SparseVectorQuery extends Query { // eslint-disable-next-line require-jsdoc - constructor() { + + constructor(field) { super('sparse_vector'); + if (!isNil(field)) this._queryOpts.field = field; } /** From e400efdcbecaf02d5fc13d5338e2a76bc35f41ec Mon Sep 17 00:00:00 2001 From: Alexander Reelsen Date: Tue, 2 Sep 2025 17:39:17 +0200 Subject: [PATCH 2/2] add test --- test/queries-test/sparse-vector-query.test.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/queries-test/sparse-vector-query.test.js b/test/queries-test/sparse-vector-query.test.js index cf39a6e..b9f2909 100644 --- a/test/queries-test/sparse-vector-query.test.js +++ b/test/queries-test/sparse-vector-query.test.js @@ -1,5 +1,5 @@ import test from 'ava'; -import { SparseVectorQuery } from '../../src'; +import esb, { SparseVectorQuery } from '../../src'; test('with inference id and query', t => { const q = new SparseVectorQuery(); @@ -136,3 +136,15 @@ test('with pruning config for multiple elements', t => { }; t.deepEqual(q.toJSON(), expected); }); + +test('call sparse vector query via esb', t => { + const q = esb.sparseVectorQuery('my_field').query('my query'); + + const expected = { + sparse_vector: { + field: 'my_field', + query: 'my query' + } + }; + t.deepEqual(q.toJSON(), expected); +});