-
-
Notifications
You must be signed in to change notification settings - Fork 499
/
Copy pathindex.js
52 lines (42 loc) · 1.28 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
const { Index } = require("flexsearch");
const Sqlite = require("flexsearch/db/sqlite");
// const Postgres = require("flexsearch/db/postgres");
// const MongoDB = require("flexsearch/db/mongodb");
// const Redis = require("flexsearch/db/redis");
// const Clickhouse = require("flexsearch/db/clickhouse");
(async function(){
// create DB instance with namespace
const db = new Sqlite("my-store");
// create a simple index which can store id-content-pairs
const index = new Index({
tokenize: "forward"
});
// mount database to the index
await index.mount(db);
// await index.destroy();
// await index.mount(db);
// 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 data to the index
data.forEach((item, id) => {
index.add(id, item);
});
// transfer changes (bulk)
await index.commit();
// perform query
const result = await index.search({
query: "cute cat"
});
// display results
result.forEach(i => {
console.log(data[i]);
});
}());