-
-
Notifications
You must be signed in to change notification settings - Fork 499
/
Copy pathindex.js
71 lines (56 loc) · 1.64 KB
/
index.js
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { Worker as WorkerIndex } from "flexsearch";
const dirname = import.meta.dirname;
// you will need to keep the index configuration
// they will not export, also every change to the
// configuration requires a full re-index
const config = {
tokenize: "forward",
config: dirname + "/config.js"
};
(async function(){
// create a simple index which can store id-content-pairs
// and await (!) for the worker response
let index = await new WorkerIndex(config);
// some test data
const data = [
'cats abcd efgh ijkl mnop qrst uvwx cute',
'cats abcd efgh ijkl mnop qrst cute',
'cats abcd efgh ijkl mnop cute',
'cats abcd efgh ijkl cute',
'cats abcd efgh cute',
'cats abcd cute',
'cats cute'
];
// add test data
for(let i = 0; i < data.length; i++){
await index.addAsync(i, data[i]);
}
// perform query
let result = await index.search({
query: "cute cat",
});
// display results
result.forEach(i => {
console.log(data[i]);
});
// -----------------------
// EXPORT
// -----------------------
await index.export();
// -----------------------
// IMPORT
// -----------------------
// create the same type of index you have used by .export()
// along with the same configuration
index = await new WorkerIndex(config);
await index.import();
// perform query
result = await index.search({
query: "cute cat",
});
// display results
console.log("-------------------------------------");
result.forEach(i => {
console.log(data[i]);
});
}());