我是以怎样的思路做开源系统中的搜索功能的呢?

随着互联网的快速发展和信息爆炸式增长,搜索功能在各种应用和系统中扮演着至关重要的角色。作为一名开发者,我一直对开源系统中的搜索功能进行探索和研究,鉴于其对用户体验和数据管理的重要性。在本文中,我将分享我是如何以怎样的思路设计并实现开源系统中强大的搜索功能,并希望能够为其他开发者提供一些宝贵的经验和启示。

上次我们说道:我是怎么做到开源系统中类似CSDN的搜索功能的?

只讲了理论,没有讲到实践,今天我们来讲一讲我们最终的效果,首先看一下我们的丐版功能(不美观,但是能用)

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
为什么能实现这样的功能的,我们是在es里面搜索数据,但是我们的数据是插入到mysql中来的,他们是怎么连通的呢,为什么我点击进去能够进入到我们的博客详情页面呢?今天就是要讲我们系统的核心功能之一:搜索功能

由于博主公司用了es,所以博主对es可以来说略知一二,要想将es和mysql连通起来,肯定是要给他们两个一个关联的字段的,无非就是在es中存储mysql的数据主键,第二种就是在mysql存储es的数据主键。

这里我们选择了第二种:在mysql中存储es的数据主键,mysql的数据结构是这样的:
在这里插入图片描述
我们可以根据elsearc_id去es中获取唯一的数据:
在这里插入图片描述
所以我们在新增一条博客的时候同时将es插入:
在这里插入图片描述
这样mysql里面就有对应es里面的数据了

第二步,我们在搜索的时候去es里面去搜数据:
在这里插入图片描述
搜出来之后我们就可以得到这条博客在es里面的值了
在这里插入图片描述
然后我们可以写一个接口搜索es里面的值
在这里插入图片描述
拿到里面的blog值后我们就可以跳转到博客详情里面去啦!
在这里插入图片描述
其实还有个更优化的思路,就是在es中存储mysql对应的id,这样就可以省略上面的那一步进行博客的跳转

通过本文的分享,我详细介绍了我在开源系统中设计和实现搜索功能的思路和方法。无论是基于关键词匹配的简单搜索,还是利用高级算法实现复杂的过滤和排序,搜索功能都是一个开发过程中值得仔细思考和优化的关键部分。希望我的经验能够帮助其他开发者在开源系统中构建出更强大、高效且可靠的搜索功能,提升用户体验并推动项目的发展。让我们共同探索创新方案,为开源社区贡献我们的智慧与努力,共同构建一个更加强大和便捷的技术世界!

好啦,今天的内容就分享到这里吧,下次见!!

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYJGrj3U' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片