MCPcopy Create free account
hub / github.com/alexankitty/Myrient-Search-Engine / optimizeDatabaseKws

Function optimizeDatabaseKws

lib/database/dboptimize.js:30–115  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

28};
29
30export async function optimizeDatabaseKws() {
31 let proctime = new Timer();
32 let changes = 0;
33 console.log("Optimizing DB Keywords...");
34 let dbLength = await File.count();
35 let optimizeTasks = [];
36 let resolvedTasks = [];
37 let promiseIndex = 0;
38 let currentIndex = 0;
39 let result = await File.findAll({
40 order: ["id", "filename"],
41 attributes: [
42 "id",
43 "filename",
44 "filenamekws",
45 "category",
46 "categorykws",
47 "subcategories",
48 "subcategorieskws",
49 "region",
50 "regionkws",
51 "type",
52 "nongame"
53 ],
54 });
55 for (let i = 0; i < dbLength; ) {
56 let loopIndexStart = i;
57 singleLineStatus(
58 `Optimizing Keywords: ${i} / ${dbLength} ${((i / dbLength) * 100).toFixed(
59 2
60 )}% (${proctime.elapsed()}) Optimized Rows: ${changes}`
61 );
62
63 for (let x = i; x < currentIndex + BATCH_SIZE; x++) {
64 if(x >= dbLength) break; //Abort abandon ship, otherwise we sink
65 debugPrint(`Submitting job for: ${result[x].filename}`);
66 let data = [];
67 for (let column in keywords) {
68 data[column] = result[x][column];
69 }
70 optimizeTasks.push(
71 piscina
72 .run(
73 {
74 data: data,
75 keywords: keywords,
76 },
77 { name: "optimizeKws" }
78 )
79 .catch((err) => {
80 console.error(err);
81 })
82 );
83 i++;
84 }
85 currentIndex = i;
86 let settledTasks = await Promise.all(optimizeTasks);
87 resolvedTasks.push(...settledTasks);

Callers 2

getFilesJobFunction · 0.90
updateKwsFunction · 0.90

Calls 4

elapsedMethod · 0.95
bulkIndexFilesFunction · 0.90
debugPrintFunction · 0.85
singleLineStatusFunction · 0.70

Tested by

no test coverage detected