| | |
| | | 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, |
| | | } |
| | | |
| | |
| | | // .then(console.log) |
| | | // .catch(console.error) |
| | | |
| | | async function run() { |
| | | async function run () { |
| | | await doIndex() |
| | | console.log(search("latu")) |
| | | } |
| | |
| | | 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 { |
| | | console.log("~~~ reading users from DB ... ~~~") |
| | | const db = require("./db") |
| | | const {data} = await db.getUsers(0, 100000) |
| | | users = data |
| | | } |
| | | |
| | | for (const user of users) { |
| | | addUser(user) |
| | |
| | | /////// 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) { |