基于Serverless快速实现简单版查询工具的示例分析
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这期内容当中小编将会给大家带来有关基于Serverless快速实现简单版查询工具的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。需求背景朋友的单位,有一个小
千家信息网最后更新 2025年02月02日基于Serverless快速实现简单版查询工具的示例分析
这期内容当中小编将会给大家带来有关基于Serverless快速实现简单版查询工具的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
需求背景
朋友的单位,有一个小型的图书室,图书室中摆放了很多的书,每本书都被编号放在对应的区域,为了让大家更快,更容易找到这些书,他联系我,让我帮他弄一个图书查询系统。可以通过用户输入,模糊匹配到对应的结果,并且提供书籍对应的地点。
功能设计
让朋友把书籍整理并存储到一个Excel表格中;
将Excel表放到对象存储中,云函数读取这个文件,并且解析;
根据词语的相似寻找相似的图书;
前端页面通过MUI制作,放在对象存储中,并且使用对象存储的Website功能;
整体实现
数据形态
Excel样式主要包括书名和编号,同时下面包括分类的tab:
基于函数的搜索功能
核心代码实现:
import jiebaimport openpyxlfrom gensim import corpora, models, similaritiesfrom collections import defaultdictimport urllib.requestwith open("/tmp/book.xlsx", "wb") as f: f.write( urllib.request.urlopen("https://********").read() )top_str = "abcdefghijklmn"book_dict = {}book_list = []wb = openpyxl.load_workbook('/tmp/book.xlsx')sheets = wb.sheetnamesfor eve_sheet in sheets: print(eve_sheet) sheet = wb.get_sheet_by_name(eve_sheet) this_book_name_index = None this_book_number_index = None for eve_header in top_str: if sheet[eve_header][0].value == "书名": this_book_name_index = eve_header if sheet[eve_header][0].value == "编号": this_book_number_index = eve_header print(this_book_name_index, this_book_number_index) if this_book_name_index and this_book_number_index: this_book_list_len = len(sheet[this_book_name_index]) for i in range(1, this_book_list_len): add_key = "%s_%s_%s" % ( sheet[this_book_name_index][i].value, eve_sheet, sheet[this_book_number_index][i].value) add_value = { "category": eve_sheet, "name": sheet[this_book_name_index][i].value, "number": sheet[this_book_number_index][i].value } book_dict[add_key] = add_value book_list.append(add_key)def getBookList(book, book_list): documents = [] for eve_sentence in book_list: tempData = " ".join(jieba.cut(eve_sentence)) documents.append(tempData) texts = [[word for word in document.split()] for document in documents] frequency = defaultdict(int) for text in texts: for word in text: frequency[word] += 1 dictionary = corpora.Dictionary(texts) new_xs = dictionary.doc2bow(jieba.cut(book)) corpus = [dictionary.doc2bow(text) for text in texts] tfidf = models.TfidfModel(corpus) featurenum = len(dictionary.token2id.keys()) sim = similarities.SparseMatrixSimilarity( tfidf[corpus], num_features=featurenum )[tfidf[new_xs]] book_result_list = [(sim[i], book_list[i]) for i in range(0, len(book_list))] book_result_list.sort(key=lambda x: x[0], reverse=True) result = [] for eve in book_result_list: if eve[0] >= 0.25: result.append(eve) return resultdef main_handler(event, context): try: print(event) name = event["body"] print(name) base_html = '''''' result_str = "" for eve_book in getBookList(name, book_list): book_infor = book_dict[eve_book[1]] result_str = result_str + base_html.replace("{{book_name}}", book_infor['name']) \ .replace("{{book_category}}", book_infor['category']) \ .replace("{{book_number}}", book_infor['number'] if book_infor['number'] else "") if result_str: return result_str except Exception as e: print(e) return '''{{book_name}}分类:{{book_category}}
编号:{{book_number}}'''未找到图书信息,请您重新搜索。
同时配置APIGW:
功能页面
图书检索系统 图书检索系统
可以在搜索框内输入书籍的全称,或者书籍的简称,系统支持智能检索功能。
效果展示
为了便于朋友使用,将这个页面用过Webview封装成一个APP,整体效果如下:
这个APP是一个低频使用APP,可以这样认为,如果做在一个传统服务器上,这应该不是一个明智的选择,云函数的按量付费,对象存储与APIGW的融合,完美解决了资源浪费的问题,同时借用云函数的APIGW触发器,很简单轻松的替代传统的Web框架和部分服务器软件的安装和使用、维护等。这个例子非常小,但是确是一个有趣的小工具,除了图书查询之外,还可以考虑做成成绩查询等。
上述就是小编为大家分享的基于Serverless快速实现简单版查询工具的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
图书
查询
功能
存储
分析
书籍
函数
对象
系统
检索
工具
代码
同时
朋友
页面
搜索
示例
相似
书名
传统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库查询命令范围
能管理服务器的软件
美股股票软件开发
剑网三保存本地服务器
负载均衡服务器端口状态异常
软件开发学徒工作内容
红河缺严网络技术有限公司
软件开发行业发展方向
服务器管理器仪表板作用
延庆区网络技术服务清单
网络安全路由器知识内容
深圳网络技术小鹅后端开发
酒店管理系统是数据库吗
无政府服务器僵尸毁灭工程下载
软件开发过程流程图
网络安全机密性措施
网络安全监控系统哪家强
注册页面提交数据库
信息网络安全考试内容
网络安全顾问具备那些
db2数据库收回创建表权限
形成网络安全大格局
微软服务器系统占比
登录日本亚马逊用哪个云服务器好
数据库设计和高等数学哪个难
对等网络技术
充分认识当前网络安全形势
z420服务器安装
注册页面提交数据库
网络安全相信朋友们