REST Service for POPCORN - ILIAS
alex
2025-06-08 34201eeb373a4fa49e6e6a98ce7c67170672c06d
lib/search.js
@@ -1,11 +1,14 @@
const _ = require("lodash")
const {Index, Document, Worker} = require("flexsearch")
const settings = require("../settings")
const fs = require("node:fs")
/////////////////////////////////////////////////////////////////////////
// Message index
const options = {
   tokenize: "full",
   // tokenize: "full",
   tokenize: "forward",
   split: true,
}
@@ -67,7 +70,7 @@
// .then(console.log)
// .catch(console.error)
async function run() {
async function run () {
   await doIndex()
   console.log(search("latu"))
}
@@ -77,8 +80,17 @@
async function doIndex () {
   const start = Date.now()
   console.log("++ START indexing Users...")
   let users = require("../users.json")
   // users = users.slice(10)
   const {readFromFile, file} = settings.search
   let users
   if (readFromFile) {
      users = fs.readFileSync(file, "utf8")
      users = JSON.parse(users)
   }
   else {
      // TODO zweite möglichkeit "readFromApi" implementieren
   }
   for (const user of users) {
      addUser(user)
@@ -109,8 +121,9 @@
/////// idxMessage FNS ////////////////////////////////////////////////////////////////
function getUserString (user) {
   const {usr_id, firstname, lastname} = user
   return `${usr_id} ${firstname} ${lastname}`.trim()
   const {usr_id, firstname, lastname, login, institution, department} = user
   return `${usr_id} ${login} ${firstname} ${lastname} ${institution} ${department}`.trim()
   // return `${usr_id} ${firstname} ${lastname}`.trim()
}
function addUser (user) {