REST Service for POPCORN - ILIAS
alex
2025-06-30 bd6b930043d6bca90b6a3be7a4a18c9da713555d
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)
}
@@ -122,7 +130,9 @@
function getUserString (user) {
   const {usr_id, firstname, lastname, login, institution, department} = user
   return `${usr_id} ${login} ${firstname} ${lastname} ${institution} ${department}`.trim()
   // 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 ////////////////////////////////////////////////////////////////