小程序云开发之模糊搜索功能的实现与代码讲解

2024-08-03
来源:网络整理

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

1.需求

例如,我有一些如下数据

我们希望实现以下搜索要求

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

2.实现原理

当我们进行模糊搜索时,我们实际上是在检查某个字段是否包含我们的搜索词。模糊搜索需要帮助。让我们看看它是什么。

官方文档:

3.模糊查找的代码实现3-1.单个字段的模糊查找

代码显示如下

查询结果如下:

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

3-2、多个字段模糊查找(只需要一个即可)

由于我们要查询多个字段,所以这里使用高级运算符或。

模糊搜索实现_模糊搜索js_模糊搜索小程序开发

代码如下:

搜索结果:

我们来分析一下这两个数据。

3-3、多个字段模糊查找(必须同时满足)

由于我们要查询多个字段,因此我们使用高级运算符,这里

代码如下:

搜索结果:

我们来分析一下这两个数据。

4. 源代码

为了方便大家使用,我把完整的代码粘贴在这里,以后用的时候只要把代码复制过来,稍微修改一下就可以了。

    //我这里简单起见就把搜索词写死,正常应该用户输入的
    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)
      })

暂时就这么多,后面我会把这个录制视频,作为云开发入门课程中的实际案例。

分享