Skip to content

Commit 75ed4ff

Browse files
committed
completed execute method for backend.py
1 parent 4c9270c commit 75ed4ff

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

Search_Engine/backend.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sqlite3
22
import test_data
33
import ast
4+
import json
45

56
class SearchEngine:
67
"""
@@ -26,8 +27,8 @@ def __init__(self):
2627
tables_exist = res.fetchone()
2728

2829
if not tables_exist:
29-
self.conn.execute("CREATE TABLE IdToDoc(id INTEGER PRIMARY KEY, document TEXT)")
30-
self.conn.execute('CREATE TABLE WordToId (name TEXT, value TEXT)')
30+
self.cur.execute("CREATE TABLE IdToDoc(id INTEGER PRIMARY KEY, document TEXT)")
31+
self.cur.execute('CREATE TABLE WordToId (name TEXT, value TEXT)')
3132
self.cur.execute("INSERT INTO WordToId VALUES (?, ?)", ("index", "{}",))
3233
# self.conn.commit()
3334

@@ -55,13 +56,16 @@ def index_document(self, document):
5556
"""
5657
row_id = self._add_to_IdToDoc(document)
5758
reverse_idx = self.cur.execute("SELECT value FROM WordToId WHERE name='index'").fetchone()[0]
58-
reverse_idx = ast.literal_eval(reverse_idx)
59+
reverse_idx = json.loads(reverse_idx)
5960
document = document.split()
6061
for word in document:
6162
if word not in reverse_idx:
62-
reverse_idx[word] = set([row_id])
63+
reverse_idx[word] = [row_id]
6364
else:
64-
reverse_idx.add(row_id)
65+
if row_id not in reverse_idx[word]: # incase the word has already been indexed
66+
reverse_idx[word].append(row_id)
67+
reverse_idx = json.dumps(reverse_idx)
68+
self.cur.execute("UPDATE WordToId SET value = (?) WHERE name='index'", (reverse_idx,))
6569
print(reverse_idx)
6670

6771
def _add_to_IdToDoc(self, document):
@@ -73,7 +77,7 @@ def _add_to_IdToDoc(self, document):
7377
into the db
7478
- retrieve and return the row id of the inserted document
7579
"""
76-
res = self.conn.execute("INSERT INTO IdToDoc (document) VALUES (?)", (document,))
80+
res = self.cur.execute("INSERT INTO IdToDoc (document) VALUES (?)", (document,))
7781
return res.lastrowid
7882

7983

0 commit comments

Comments
 (0)