Skip to content

Commit

Permalink
Test distanceResultField with select query
Browse files Browse the repository at this point in the history
  • Loading branch information
MarkDuckworth committed Aug 14, 2024
1 parent 6ccf5ae commit 873dd12
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions dev/system-test/firestore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2537,6 +2537,45 @@ describe('Query class', () => {
.to.be.true;
expect(res.docs[0].get('distance')).to.equal(1);
});

it.only('supports select queries', async () => {

Check failure on line 2541 in dev/system-test/firestore.ts

View workflow job for this annotation

GitHub Actions / lint

'it.only' is restricted from being used
const indexTestHelper = new IndexTestHelper(firestore);

const collectionReference = await indexTestHelper.setTestDocs({
'1': {foo: 'bar'},
'2': {foo: 'bar', embedding: FieldValue.vector([1, 0])},
'3': {foo: 'bar', embedding: FieldValue.vector([0, 1])},
'4': {foo: 'bar', embedding: FieldValue.vector([0, -0.1])},
'5': {foo: 'bar', embedding: FieldValue.vector([-1, 0])},
});

const vectorQuery = indexTestHelper
.query(collectionReference)
// value of `distanceResultField` must also be in select statement
.select('embedding', 'distance')
.findNearest({
vectorField: 'embedding',
queryVector: [1, 0],
limit: 5,
distanceMeasure: 'COSINE',
distanceResultField: 'distance',
});

const res = await vectorQuery.get();

expect(res.size).to.equal(4);

expect(res.docs[0].get('embedding').isEqual(FieldValue.vector([1, 0])))
.to.be.true;
expect(res.docs[0].get('distance')).to.equal(0);

expect(res.docs[1].get('distance')).to.equal(1);
expect(res.docs[2].get('distance')).to.equal(1);

expect(res.docs[3].get('embedding').isEqual(FieldValue.vector([-1, 0])))
.to.be.true;
expect(res.docs[3].get('distance')).to.equal(2);
});
});

describe('querying with distance threshold', () => {
Expand Down

0 comments on commit 873dd12

Please sign in to comment.