mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
feat: refresh vector cache on complete
This commit is contained in:
+1
-1
@@ -78,7 +78,7 @@
|
|||||||
"codemirror": "^6.0.1",
|
"codemirror": "^6.0.1",
|
||||||
"color": "^5.0.0",
|
"color": "^5.0.0",
|
||||||
"dompurify": "^3.2.4",
|
"dompurify": "^3.2.4",
|
||||||
"embeddia": "^1.0.4",
|
"embeddia": "^1.1.0",
|
||||||
"embla-carousel-autoplay": "^8.5.2",
|
"embla-carousel-autoplay": "^8.5.2",
|
||||||
"embla-carousel-svelte": "^8.5.2",
|
"embla-carousel-svelte": "^8.5.2",
|
||||||
"events": "^3.3.0",
|
"events": "^3.3.0",
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { refreshVectorCache } from '../../search/vector/vectorSearch';
|
||||||
import type { HydratedIndexItem } from '../types';
|
import type { HydratedIndexItem } from '../types';
|
||||||
import vectorWorker from './vectorWorker.ts?inlineWorker';
|
import vectorWorker from './vectorWorker.ts?inlineWorker';
|
||||||
import type { SearchResult } from 'embeddia';
|
import type { SearchResult } from 'embeddia';
|
||||||
@@ -66,6 +67,10 @@ export class VectorWorkerManager {
|
|||||||
case 'progress':
|
case 'progress':
|
||||||
if (this.progressCallback) {
|
if (this.progressCallback) {
|
||||||
this.progressCallback(data);
|
this.progressCallback(data);
|
||||||
|
|
||||||
|
if (data.status === 'complete') {
|
||||||
|
refreshVectorCache();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -134,15 +134,12 @@ export async function performSearch(
|
|||||||
dynamicIdToItemMap: Map<string, HydratedIndexItem>,
|
dynamicIdToItemMap: Map<string, HydratedIndexItem>,
|
||||||
showRecentFirst: boolean,
|
showRecentFirst: boolean,
|
||||||
): Promise<CombinedResult[]> {
|
): Promise<CombinedResult[]> {
|
||||||
const startTime = performance.now();
|
|
||||||
|
|
||||||
// Get all results first
|
// Get all results first
|
||||||
const commandResults = searchCommands(
|
const commandResults = searchCommands(
|
||||||
commandsFuse,
|
commandsFuse,
|
||||||
query,
|
query,
|
||||||
commandIdToItemMap,
|
commandIdToItemMap,
|
||||||
);
|
);
|
||||||
const commandEndTime = performance.now();
|
|
||||||
const dynamicResults = searchDynamicItems(
|
const dynamicResults = searchDynamicItems(
|
||||||
dynamicContentFuse,
|
dynamicContentFuse,
|
||||||
query,
|
query,
|
||||||
@@ -150,23 +147,12 @@ export async function performSearch(
|
|||||||
10,
|
10,
|
||||||
showRecentFirst,
|
showRecentFirst,
|
||||||
);
|
);
|
||||||
const fuseEndTime = performance.now();
|
|
||||||
|
|
||||||
// Get vector results in parallel
|
// Get vector results in parallel
|
||||||
let vectorResults: VectorSearchResult[] = [];
|
let vectorResults: VectorSearchResult[] = [];
|
||||||
try {
|
try {
|
||||||
vectorResults = await searchVectors(query, 10);
|
vectorResults = await searchVectors(query, 10);
|
||||||
} catch (e) {}
|
} 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
|
// Create a map to store our final results, using ID as key to avoid duplicates
|
||||||
const resultMap = new Map<string, CombinedResult>();
|
const resultMap = new Map<string, CombinedResult>();
|
||||||
|
|||||||
@@ -31,3 +31,9 @@ export async function searchVectors(query: string, topK: number = 10): Promise<V
|
|||||||
|
|
||||||
return results as VectorSearchResult[];
|
return results as VectorSearchResult[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function refreshVectorCache() {
|
||||||
|
if (!vectorIndex) await initVectorSearch();
|
||||||
|
vectorIndex!.clearIndexedDBCache();
|
||||||
|
vectorIndex!.preloadIndexedDB();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user