Back End
Back End
import re
app = FastAPI()
# Trie Implementation
class TrieNode:
def __init__(self):
self.children = {}
self.is_end = False
class Trie:
def __init__(self):
self.root = TrieNode()
node = self.root
node.children[char] = TrieNode()
node = node.children[char]
node.is_end = True
def search_prefix(self, prefix: str) -> List[str]:
node = self.root
return []
node = node.children[char]
words = []
if node.is_end:
words.append(prefix)
return words
class HashTableSearch:
def __init__(self):
self.index = defaultdict(list)
self.index[word].append(doc_id)
def search(self, word: str):
trie = Trie()
hash_table = HashTableSearch()
trie.insert(word)
hash_table.add_document(doc_id, text)
@app.post("/upload/")
text = content.decode("utf-8")
doc_id = len(documents) + 1
documents[doc_id] = text
process_document(doc_id, text)
@app.get("/search/trie/{prefix}")
results = trie.search_prefix(prefix.lower())
doc_ids = hash_table.search(word.lower())
font end
e.preventDefault();
if (!file) return;
setLoading(true);
formData.append("file", file);
try {
} catch (error) {
setLoading(false);
};
if (!prefix) return;
try {
setTrieResults(res.data.matches);
} catch (error) {
};
try {
setHashResults(res.data.documents);
} catch (error) {
};
return (
</button>
</form>
<div>
<input
type="text"
value={prefix}
className="p-2 border"
/>
Search
</button>
<ul className="mt-2">
))}
</ul>
</div>
<div>
<input
type="text"
value={word}
className="p-2 border"
/>
</button>
<ul className="mt-2">
))}
</ul>
</div>
</div>
</div>
);