From 63a4bd4211616e832313b9833e30d8e22fc63b9c Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Sat, 3 May 2025 20:40:39 +1000 Subject: [PATCH] feat: refresh vector cache on complete --- package.json | 2 +- .../src/indexing/worker/vectorWorkerManager.ts | 5 +++++ .../globalSearch/src/search/searchUtils.ts | 14 -------------- .../globalSearch/src/search/vector/vectorSearch.ts | 6 ++++++ 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index c2dc85c0..b8f7262d 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "codemirror": "^6.0.1", "color": "^5.0.0", "dompurify": "^3.2.4", - "embeddia": "^1.0.4", + "embeddia": "^1.1.0", "embla-carousel-autoplay": "^8.5.2", "embla-carousel-svelte": "^8.5.2", "events": "^3.3.0", diff --git a/src/plugins/built-in/globalSearch/src/indexing/worker/vectorWorkerManager.ts b/src/plugins/built-in/globalSearch/src/indexing/worker/vectorWorkerManager.ts index ae69d482..ee3d7960 100644 --- a/src/plugins/built-in/globalSearch/src/indexing/worker/vectorWorkerManager.ts +++ b/src/plugins/built-in/globalSearch/src/indexing/worker/vectorWorkerManager.ts @@ -1,3 +1,4 @@ +import { refreshVectorCache } from '../../search/vector/vectorSearch'; import type { HydratedIndexItem } from '../types'; import vectorWorker from './vectorWorker.ts?inlineWorker'; import type { SearchResult } from 'embeddia'; @@ -66,6 +67,10 @@ export class VectorWorkerManager { case 'progress': if (this.progressCallback) { this.progressCallback(data); + + if (data.status === 'complete') { + refreshVectorCache(); + } } break; diff --git a/src/plugins/built-in/globalSearch/src/search/searchUtils.ts b/src/plugins/built-in/globalSearch/src/search/searchUtils.ts index ba1311ed..3dc116da 100644 --- a/src/plugins/built-in/globalSearch/src/search/searchUtils.ts +++ b/src/plugins/built-in/globalSearch/src/search/searchUtils.ts @@ -134,15 +134,12 @@ export async function performSearch( dynamicIdToItemMap: Map, showRecentFirst: boolean, ): Promise { - const startTime = performance.now(); - // Get all results first const commandResults = searchCommands( commandsFuse, query, commandIdToItemMap, ); - const commandEndTime = performance.now(); const dynamicResults = searchDynamicItems( dynamicContentFuse, query, @@ -150,23 +147,12 @@ export async function performSearch( 10, showRecentFirst, ); - const fuseEndTime = performance.now(); // Get vector results in parallel let vectorResults: VectorSearchResult[] = []; try { vectorResults = await searchVectors(query, 10); } catch (e) {} - const vectorEndTime = performance.now(); - - console.log("Vector results:", vectorResults); - - // Log timings - console.log(`Command search took ${commandEndTime - startTime} milliseconds`); - console.log( - `Dynamic search took ${fuseEndTime - commandEndTime} milliseconds`, - ); - console.log(`Vector search took ${vectorEndTime - fuseEndTime} milliseconds`); // Create a map to store our final results, using ID as key to avoid duplicates const resultMap = new Map(); diff --git a/src/plugins/built-in/globalSearch/src/search/vector/vectorSearch.ts b/src/plugins/built-in/globalSearch/src/search/vector/vectorSearch.ts index 824b7d63..3d4782d6 100644 --- a/src/plugins/built-in/globalSearch/src/search/vector/vectorSearch.ts +++ b/src/plugins/built-in/globalSearch/src/search/vector/vectorSearch.ts @@ -30,4 +30,10 @@ export async function searchVectors(query: string, topK: number = 10): Promise