/
indexing.ts
40 lines (37 loc) · 1.04 KB
/
indexing.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { create, insert } from "@orama/orama";
import { persistToFile } from "@orama/plugin-data-persistence/server";
import { getDB } from "@/data/db.ts";
import { getListPeraturan } from "@/models/peraturan.ts";
import { readTextMd } from "@/utils/fs.ts";
try {
const index = await create({
schema: {
path: "string",
jenis: "string",
tahun: "number",
nomor: "string",
judul: "string",
tanggal: "number",
teks: "string",
},
language: "indonesian",
});
const db = await getDB();
const { hasil } = await getListPeraturan(db, { pageSize: 20000 });
for (const p of hasil) {
await insert(index, {
path: p.path,
jenis: p.namaJenisPanjang,
nomor: p.nomorPanjang,
judul: p.judul,
tahun: p.tahun,
tanggal: p.tanggal_ditetapkan.getTime(),
teks:
await readTextMd({ jenis: p.jenis, tahun: p.tahun, nomor: p.nomor }) ??
"",
} as never);
}
persistToFile(index, "dpack", "data/index.dpack", "deno");
} catch (error) {
console.error(error);
}