likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 18

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

上次我们说道:我是怎么做到开源系统中类似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,这样就可以省略上面的那一步进行博客的跳转

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

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