Mya-Mya commited on
Commit
ab080f6
·
1 Parent(s): c414d55

Create classic_search_backends.py

Browse files
Files changed (1) hide show
  1. classic_search_backends.py +32 -0
classic_search_backends.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from abc import ABC, abstractmethod
2
+ from pandas import DataFrame
3
+ import re
4
+ import pickle
5
+
6
+ class ClassicSearchBackend(ABC):
7
+ @abstractmethod
8
+ def submit(self, query:str)->DataFrame:
9
+ pass
10
+ @abstractmethod
11
+ def get_num_items(self)->int:
12
+ pass
13
+
14
+ class ImplClassicSearchBackend(ClassicSearchBackend):
15
+ def __init__(self):
16
+ super().__init__()
17
+ with open("./himitsudogu_db.pkl", "rb") as file:
18
+ self.himitsudogu_db: dict = pickle.load(file)
19
+ def submit(self, query: str) -> DataFrame:
20
+ pattern = ".*"+query+".*"
21
+ output = DataFrame(columns=["名前","説明"])
22
+ for i,(name,description) in enumerate(zip(
23
+ self.himitsudogu_db["name_s"],self.himitsudogu_db["description_s"]
24
+ )):
25
+ if re.match(pattern,name+description):
26
+ output.loc[i] = [
27
+ name,
28
+ description
29
+ ]
30
+ return output
31
+ def get_num_items(self)->int:
32
+ return len(self.himitsudogu_db["name_s"])