HimitsudoguSearch / classic_search_backends.py
Mya-Mya
Squashed commit of the following:
9f1a6f8
raw
history blame
1.04 kB
from abc import ABC, abstractmethod
from pandas import DataFrame
import re
import pickle
class ClassicSearchBackend(ABC):
@abstractmethod
def submit(self, query:str)->DataFrame:
pass
@abstractmethod
def get_num_items(self)->int:
pass
class ImplClassicSearchBackend(ClassicSearchBackend):
def __init__(self):
super().__init__()
with open("./himitsudogu_db.pkl", "rb") as file:
self.himitsudogu_db: dict = pickle.load(file)
def submit(self, query: str) -> DataFrame:
pattern = ".*"+query+".*"
output = DataFrame(columns=["名前","θͺ¬ζ˜Ž"])
for i,(name,description) in enumerate(zip(
self.himitsudogu_db["name_s"],self.himitsudogu_db["description_s"]
)):
if re.match(pattern,name+description):
output.loc[i] = [
name,
description
]
return output
def get_num_items(self)->int:
return len(self.himitsudogu_db["name_s"])