From a5dcd68d7f47302abdc6c479269c79edf6d21686 Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Fri, 11 Jul 2025 14:33:28 +0000
Subject: [PATCH] GS-2174

---
 lib/search.js |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/lib/search.js b/lib/search.js
index 8053536..11e1536 100644
--- a/lib/search.js
+++ b/lib/search.js
@@ -77,11 +77,12 @@
 
 /////////////////////////////////////////////////////////////////////////
 
+let indexed = false
 async function doIndex () {
    const start = Date.now()
    console.log("++ START indexing Users...")
-
    const {readFromFile, file} = settings.search
+   clearIndex(idxUser)
 
    let users
    if (readFromFile) {
@@ -89,17 +90,24 @@
       users = JSON.parse(users)
    }
    else {
-      // TODO zweite möglichkeit "readFromApi" implementieren
+      console.log("~~~ reading users from DB ... ~~~")
+      const db = require("./db")
+      const {data} = await db.getUsers(0, 100000)
+      console.log(`loaded ${data.length} users from DB...`)
+      users = data
    }
 
    for (const user of users) {
       addUser(user)
       // addTags(user)
    }
+   indexed = true
    console.log(`++ END indexing Users in ${Date.now() - start}ms`)
 }
 
-function search (query) {
+async function search (query) {
+   // when called from a cli program the search index is not initalized
+   if(!indexed) await doIndex()
    const searchLimit = 10000
    return idxUser.search(query, searchLimit)
 }
@@ -121,8 +129,10 @@
 /////// idxMessage FNS ////////////////////////////////////////////////////////////////
 
 function getUserString (user) {
-   const {usr_id, firstname, lastname, institution, department} = user
-   return `${usr_id} ${firstname} ${lastname} ${institution} ${department}`.trim()
+   const {usr_id, firstname, lastname, login, institution, department} = user
+   // if(firstname.trim()==="Adolfo") console.log(user)
+   return `${login} ${firstname} ${lastname} ${institution} ${department}`.trim()
+   // return `${usr_id} ${login} ${firstname} ${lastname} ${institution} ${department}`.trim() // KEINE usr_id
    // return `${usr_id} ${firstname} ${lastname}`.trim()
 }
 
@@ -138,6 +148,10 @@
    remove(idxUser, usr_id)
 }
 
+function clearIndex(index) {
+   index.clear()
+}
+
 
 /////// idxTags FNS ////////////////////////////////////////////////////////////////
 

--
Gitblit v1.8.0