-
Notifications
You must be signed in to change notification settings - Fork 0
/
InMemorySearch.js
45 lines (33 loc) · 1.28 KB
/
InMemorySearch.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
/*
can we implement this in JS
Yes, you can implement an in-memory search engine in JavaScript. While it might not be as sophisticated or efficient as dedicated
search engines like Elasticsearch or Redis, it can be quite effective for smaller datasets and specific use cases. Here's a simple example
of how you can create an in-memory search engine using JavaScript:
*/
class InMemorySearchEngine {
constructor() {
this.document = [];
}
addDocument(document) {
this.document.push(document);
}
search(query) {
let regex = new RegExp(query, 'i');
let arr = [];
this.document.forEach((item) => {
let flag = false;
Object.values(item).forEach((val) => {
if (regex.test(val))
flag = true;
})
if (flag)
arr.push(item);
})
return arr;
}
}
const searchEngine = new InMemorySearchEngine();
searchEngine.addDocument({ id: 1, title: "JavaScript for Beginners", content: "This is a beginner's guide to JavaScript." });
searchEngine.addDocument({ id: 2, title: "Advanced JavaScript", content: "This guide covers advanced JavaScript topics." });
searchEngine.addDocument({ id: 3, title: "JavaScript in the Browser", content: "Learn how to use JavaScript in the browser." });
console.log(searchEngine.search('this'))