Skip to content

Commit

Permalink
remove unnecessary guc settings
Browse files Browse the repository at this point in the history
  • Loading branch information
mertalev committed Nov 19, 2024
1 parent 69e50d0 commit b1f2b6e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 25 deletions.
18 changes: 3 additions & 15 deletions server/src/queries/search.repository.sql
Original file line number Diff line number Diff line change
Expand Up @@ -279,13 +279,7 @@ LIMIT
-- SearchRepository.searchSmart
START TRANSACTION
SET
LOCAL vectors.enable_prefilter = on;

SET
LOCAL vectors.search_mode = vbase;

SET
LOCAL vectors.hnsw_ef_search = 100;
LOCAL vectors.hnsw_ef_search = 200;
SELECT
"asset"."id" AS "asset_id",
"asset"."deviceAssetId" AS "asset_deviceAssetId",
Expand Down Expand Up @@ -369,7 +363,7 @@ WHERE
ORDER BY
"search"."embedding" <= > $6 ASC
LIMIT
101
201
COMMIT

-- SearchRepository.searchDuplicates
Expand Down Expand Up @@ -404,12 +398,6 @@ WHERE

-- SearchRepository.searchFaces
START TRANSACTION
SET
LOCAL vectors.enable_prefilter = on;

SET
LOCAL vectors.search_mode = vbase;

SET
LOCAL vectors.hnsw_ef_search = 100;
WITH
Expand All @@ -436,7 +424,7 @@ WITH
ORDER BY
"search"."embedding" <= > $1 ASC
LIMIT
100
64
)
SELECT
res.*
Expand Down
23 changes: 13 additions & 10 deletions server/src/repositories/search.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ export class SearchRepository implements ISearchRepository {

@GenerateSql({
params: [
{ page: 1, size: 100 },
{ page: 1, size: 200 },
{
takenAfter: DummyValue.DATE,
embedding: Array.from({ length: 512 }, Math.random),
Expand All @@ -137,7 +137,10 @@ export class SearchRepository implements ISearchRepository {
.orderBy('search.embedding <=> :embedding')
.setParameters({ userIds, embedding: asVector(embedding) });

await manager.query(this.getRuntimeConfig(pagination.size));
const runtimeConfig = this.getRuntimeConfig(pagination.size);
if (runtimeConfig) {
await manager.query(runtimeConfig);
}
results = await paginatedBuilder<AssetEntity>(builder, {
mode: PaginationMode.LIMIT_OFFSET,
skip: (pagination.page - 1) * pagination.size,
Expand Down Expand Up @@ -196,7 +199,7 @@ export class SearchRepository implements ISearchRepository {
{
userIds: [DummyValue.UUID],
embedding: Array.from({ length: 512 }, Math.random),
numResults: 100,
numResults: 10,
maxDistance: 0.6,
},
],
Expand Down Expand Up @@ -236,7 +239,10 @@ export class SearchRepository implements ISearchRepository {
cte.addSelect(`faces.${col}`, col);
}

await manager.query(this.getRuntimeConfig(numResults));
const runtimeConfig = this.getRuntimeConfig(numResults);
if (runtimeConfig) {
await manager.query(runtimeConfig);
}
results = await manager
.createQueryBuilder()
.select('res.*')
Expand Down Expand Up @@ -421,17 +427,14 @@ export class SearchRepository implements ISearchRepository {
return results.map(({ model }) => model).filter((item) => item !== '');
}

private getRuntimeConfig(numResults?: number): string {
private getRuntimeConfig(numResults?: number): string | undefined {
if (this.vectorExtension === DatabaseExtension.VECTOR) {
return 'SET LOCAL hnsw.ef_search = 1000;'; // mitigate post-filter recall
}

let runtimeConfig = 'SET LOCAL vectors.enable_prefilter=on; SET LOCAL vectors.search_mode=vbase;';
if (numResults) {
runtimeConfig += ` SET LOCAL vectors.hnsw_ef_search = ${numResults};`;
if (numResults && numResults !== 100) {
return `SET LOCAL vectors.hnsw_ef_search = ${Math.max(numResults, 100)};`;
}

return runtimeConfig;
}
}

Expand Down

0 comments on commit b1f2b6e

Please sign in to comment.