小程序搜索功能,云开发搜索,小程序云开发模糊搜索,同时搜索多个字段

简介: 小程序搜索功能,云开发搜索,小程序云开发模糊搜索,同时搜索多个字段

今天来给大家讲讲小程序的搜索功能。我这里后台数据库用的是小程序云开发的云数据库。所以我们搜索的时候就要借助云开发来实现。


一,需求


比如我这里有如下的一些数据

我们想实现如下搜索需求

  • 1,搜索标题(title)包含‘小石头’的数据
  • 2,搜索标题(title)或者描述(desc)包含‘小石头’的数据
  • 3,搜索标题(title)描述(desc)都包含‘小石头’的数据

我们知道数据库查询的时候有个where语句,但是where语句是查询某个字段全部包含你输入的内容时才可以,所以单纯用where语句来做搜索的话,结果太单一。所以我们今天就来学习下模糊搜索功能的实现。我们以上面三个需求为例,来一个个讲解。


二,实现原理


我们做模糊搜索的时候,其实就是查询某个字段里是否包含我们的搜索词。而模糊搜索需要借助RegExp,来看看RegExp是什么。

官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Database.RegExp.html

  • 再来看看官方示例
  • 可能看官方示例会有点糊涂,那么我们接下来就结合具体代码来给大家做下讲解。

三,模糊搜索的代码实现


3-1,模糊搜索单个字段


  • 需求:搜索标题(title)包含‘小石头’的数据

代码如下

查询结果如下:

可以看到我们成功的查询到了标题里包含‘小石头的数据’

3-2,模糊搜索多个字段(满足一个即可)


  • 需求:搜索标题(title)或者描述(desc)包含‘小石头’的数据

由于我们要查询多个字段,所以我们这里用到了command高级操作符里的or

代码如下:

查询结果:

我们来分析下这两条数据

  • 1,标题和描述都包含‘小石头’,符合
  • 2,虽然标题里没有‘小石头’,但是描述里有,所以也符合。
  • 3,title和desc里都没有‘小石头’,所以不符合。

3-3,模糊搜索多个字段(要同时满足)


  • 需求:搜索标题(title)描述(desc)都包含‘小石头’的数据

由于我们要查询多个字段,所以我们这里用到了command高级操作符里的and

代码如下:

查询结果:

我们来分析下这两条数据

  • 1,标题和描述都包含‘小石头’,符合
  • 2,虽然desc里没有‘小石头’,但是title里没有,所以也不符合。
  • 3,title和desc里都没有‘小石头’,所以也不符合。

四,源码


为例方便大家使用,我把完整的代码贴到这里,后面大家使用时,直接复制这里的代码,略微改造下就可以了。

//我这里简单起见就把搜索词写死,正常应该用户输入的
    let searchKey = '小石头'
    let db = wx.cloud.database()
    let _ = db.command
    db.collection('news')
      .where(_.or([
        {//标题
          title: db.RegExp({ //使用正则查询,实现对搜索的模糊查询
            regexp: searchKey,
            options: 'i', //大小写不区分
          }),
        },
        {//描述
          desc: db.RegExp({
            regexp: searchKey,
            options: 'i',
          }),
        }
      ])).get()
      .then(res => {
        console.log('查询成功', res)
      })
      .catch(res => {
        console.log('查询失败', res)
      })
相关文章
|
18天前
|
存储 编解码 小程序
抖音小程序开发中遇见的坑点
在抖音小程序开发中,需注意10大坑点:遵守小程序限制与规范;解决兼容性问题;优化数据加载速度;适应分享功能限制;处理视频播放挑战;优化图片加载显示;管理资源文件;提升用户体验;考虑安全性;及时更新维护。通过测试、优化和遵循官方文档,可克服这些问题,打造优质小程序。
|
28天前
|
小程序 前端开发 API
小程序全栈开发中的多端适配与响应式布局
【4月更文挑战第12天】本文探讨了小程序全栈开发中的多端适配与响应式布局。多端适配涉及平台和设备适应,确保统一用户体验;响应式布局利用媒体查询和弹性布局维持不同设备的布局一致性。实践中,开发者可借助跨平台框架实现多平台开发,运用响应式布局技术适应不同设备。同时,注意兼容性、性能优化和用户体验,以提升小程序质量和用户体验。通过这些方法,开发者能更好地掌握小程序全栈开发。
|
28天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
28天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
28天前
|
小程序 前端开发 安全
小程序全栈开发中的跨域问题及其解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨域问题及其解决方案。跨域问题源于浏览器安全策略,主要体现在前后端分离、第三方服务集成和数据共享上。为解决此问题,开发者可采用CORS、JSONP、代理服务器、数据交换格式和域名策略等方法。实践中需注意安全性、兼容性和性能。通过掌握这些解决方案,开发者能更好地处理小程序的跨域问题,提升用户体验。
|
28天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
28天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
10天前
|
小程序 前端开发 JavaScript
轻松学会微信小程序开发(一)
轻松学会微信小程序开发(一)
|
11天前
|
JSON 小程序 JavaScript
微信小程序开发1
微信小程序开发1
|
28天前
|
小程序 前端开发 持续交付
小程序全栈开发中的CI/CD流程与自动化部署
【4月更文挑战第12天】本文探讨了小程序全栈开发中的CI/CD流程和自动化部署,强调其在提升开发效率和代码质量上的重要性。持续集成和持续部署确保了代码的频繁集成与快速迭代。实践中,利用构建工具、测试框架和部署工具实现自动化,并借助代码审查工具保证代码质量。同时,注意安全性、性能和团队协作,以实现小程序的稳定运行和优质用户体验。

热门文章

最新文章