优维低代码实践:搜索功能

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


优维低代码实践连载第27期

《搜索功能(后端搜索对接)》

在之前的示例中,我们有直接对接后端数据、通过事件进行接口的翻页数据请求等,但是在实际操作过程中,面对大量的数据,如果通过一页一页的翻阅查找,不方便且浪费时间,那么就会有搜索的功能要求,比如单字段的搜索,多字段的且、或搜索等。那接下来的示例将基于cmdb搜索实例(
providers-of-cmdb.instance-api-post-search)接口,给大家介绍如何进行后端搜索功能。

一、基于context数据源搜索

1.1 搜索框

添加搜索框构件后,修改搜索框的属性

placeholder: 请输入发布单元
shouldTrimQuery: true
shouldUpdateUrlParams: false
q: <% QUERY.q %>

修改输入框的事件内容。当输入框输入完搜索内容,被点击搜索时,将输入的内容以key:value的形式推送到url上,供后续页面刷新时,context的请求能够获取到搜索内容。

filter.update:
  action: history.pushQuery
  args:
    - q: <% EVENT.detail.query %>
      page: 1

1.2 context数据源

更改context中的请求内容,通过query.q或其他推送到url上的参数,进行或、并的匹配操作,从而达到动态获取用户输入的信息,并在页面刷新时,自动将搜索内容作为入参,调用后端接口匹配符合的数据并返回给前端渲染。

provider: providers-of-cmdb.instance-api-post-search

agrs:

- APP
- fields:
    '*': 1
    businesses.business_line.name: 1
    businesses.business_line.product_line_user.departmentName: 1
    businesses.business_line.product_line_user.name: 1
    businesses.business_line.product_line_user.nickname: 1
    businesses.name: 1
    businesses.owner.departmentName: 1
    businesses.owner.name: 1
    businesses.owner.nickname: 1
    releaseAbbreviation: 1
  page: <% QUERY.page || 1 %>
  page_size: <% QUERY.pageSize || 8 %>
  query:
    $or:
      - releaseTimes:
          $like: '%${query.q}%'
      - releaseNum:
          $like: '%${query.q}%'
      - name:
          $like: '%${query.q}%'
      - releaseDate:
          $like: '%${query.q}%'
    businesses.business_line.instanceId:
      $eq: '${query.product_line}'
    businesses.instanceId:
      $eq: '${query.business}'
    releaseDate:
      $eq: '${query.releaseDate}'
  sort:
    ctime: 1

1.3 前端输入搜索内容验证搜索结果

同理,下拉框的选择搜索与搜索框的输入搜索一致,将下拉框所选中的内容推送到url上,再在context中配置动态数据的获取;确定好搜索的内容的同级关系(并、或关系),使用$or\$and等mongoDB的查询语法进行配置。

PS:不同的接口所需的查询条件不一致,具体入参要根据接口文档内容来确定,但是整体的搜索逻辑是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/200383.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux之高级IO

目录 IO基本概念五种IO模型钓鱼人例子五种IO模型高级IO重要概念同步通信 VS 异步通信阻塞 VS 非阻塞其他高级IO阻塞IO非阻塞IO IO基本概念 I/O&#xff08;input/output&#xff09;也就是输入和输出&#xff0c;在著名的冯诺依曼体系结构当中&#xff0c;将数据从输入设备拷贝…

《opencv实用探索·四》Mat图像数据类型转换和归一化显示

一种数据类型转为另一种数据类型&#xff0c;不改变图像大小&#xff0c;但每个像素值可能会变 src.convertTo(dst, type, scale, shift);Scale和shitf默认为0&#xff08;这两个参数也相当于对比度和亮度&#xff09; 现在有个8位图像&#xff0c;把8位转成32位 可以看到像素…

WSDM 2024 | LLMs辅助基于内容的推荐系统增强BPR训练数据

本文提出了一种简单而有效的基于LLMs的图数据增强策略&#xff0c;称为LLMRec&#xff0c;以增强基于内容的推荐系统。LLMRec包含三种数据增强策略和两种去噪策略。数据增强策略包括从文本自然语言的角度挖掘潜在的协同信号, 构建用户画像(LLM-based), 并强化item side informa…

JS 倒计时方法(可改造)

起因&#xff1a; 写好备用。 代码&#xff1a; // 直接把方法写在了原型上&#xff0c;通过原型调用 /*** 倒计时* time_str String 到期时间(2023-11-28 16:50:00)* dom_obj Object 需要显示的倒计时的dom对象*/ Date.prototype.countdown function (time_str, dom_obj…

【古月居《ros入门21讲》学习笔记】13_服务数据的定义与使用

目录 说明&#xff1a; 1. 服务模型 2. 实现过程&#xff08;C&#xff09; 自定义服务数据 Person.srv文件内容 Person.srv文件内容说明 编译配置 在package.xml文件中添加功能包依赖 在CMakeLists.txt中添加编译选项 编译生成语言相关文件 创建服务器代码&#xf…

python获取系统当前进程数和最大进程数

参考&#xff1a; https://blog.51cto.com/u_16213345/7115864 https://www.baidu.com/s?wdpython%20%E8%8E%B7%E5%8F%96%E7%B3%BB%E7%BB%9F%E5%BD%93%E5%89%8D%E8%BF%9B%E7%A8%8B%E6%95%B0%E5%92%8C%E6%9C%80%E5%A4%A7%E8%BF%9B%E7%A8%8B%E6%95%B0&rsv_spt1&rsv_iqid…

2023年国内主流的低代码平台

低代码开发平台&#xff08;Low-Code Development Platform, LCDS&#xff09;为企业和开发者提供了高效的应用开发方式。这些平台使得开发者可以通过简化的设计界面快速创建和部署应用&#xff0c;大大提高了开发效率并降低了开发成本。 伴随数字化转型推进&#xff0c;选购低…

外汇天眼:外汇市场中的“双向交易”是什么意思?

说到外汇市场&#xff0c;总免不了提到它双向交易的优势&#xff0c;很多新手会对这一点有所疑问&#xff0c;今天我们就帮大家解决这一个疑问。 何谓双向交易&#xff1f; 金融市场上&#xff0c;交易者最常接触到的股票&#xff0c;多属于单向交易。 单向交易的模式便是「先…

1688 API接口的介绍丨商品详情页接口丨搜索商品列表接口

1688&#xff0c;作为中国领先的B2B电子商务平台&#xff0c;为全球的买家和卖家提供了一站式的采购和销售服务。而它的API接口&#xff0c;更是开放了1688平台的核心功能&#xff0c;让开发者能够根据自己的需求来定制和扩展商业应用。 1688 API接口的介绍 1688 API接口提供…

初刷leetcode题目(11)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性

来源&#xff1a;艾特保IT 虹科干货 | ntopng如何将漏洞扫描与流量监控相结合&#xff0c;以提高网络安全性 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; ntopng为人所知的“身份”是被动流量监控。然而&#xff0c;如今的ntopng6.0也进化出主动监控功能来&#xf…

正则表达式及文本三剑客grep,awk,sed

目录 正则表达式 前瞻 代表字符 表示次数 位置锚定 分组或其他 grep 选项 范例 awk 前瞻 awk常见的内置变量 范例 sed 前瞻 sed格式 范例 搜索替代 格式 范例 分组后项引用 格式 范例 正则表达式 前瞻 通配符&#xff1a;匹配的是文件名 正则表达式&a…

【带头学C++】----- 八、C++面向对象编程 ---- 8.8 内联函数 inline

目录 8.8 内联函数 inline 8.8.1 声明内联函数 8.8.2 宏函数与内联函数的区别 8.8.3 使用内联函数需注意 8.9 函数重载 8.9.1 什么是函数重载 8.9.2 函数重载的条件 8.9.3 函数重载底层原理是如何实现的&#xff1f; 8.8 内联函数 inline 在C中&#xff0c;inline是一个…

docker镜像管理命令

镜像管理命令 docker build : 命令用于使用 Dockerfile 创建镜像 docker build [OPTIONS] PATH | URL | - OPTIONS说明&#xff1a; --add-host :向hosts文件中添加自定义 host:ip 映射 --build-arg[] :设置镜像创建时的变量&#xff1b; --cache-from :指定镜像用作当前构建…

今日份推荐、无广告、超实用的5款软件

​ 大家好&#xff0c;我又来啦&#xff0c;今天给大家带来的几款软件&#xff0c;共同特点都是无广告、超实用&#xff0c;大家观看完可以自行搜索下载哦。 1.键盘锁定工具——Iwck ​ Iwck是一款简单实用的键盘锁定工具&#xff0c;可以让你在需要的时候暂时停止键盘的所有…

P27 C++this 关键字

目录 前言 01 this关键字的引入 02 this关键字 前言 本章的主题是 C 中的 this 关键字。 以前第一次学qt的时候就遇到了this关键字&#xff0c;那时候还不是很会C&#xff0c;所以有点懵&#xff0c;现在我们就来讲解以下C中的this关键字 C 中有一个关键字 this&#xff0…

dockerfile文件:copy和add 异同

相同点&#xff1a; 复制文件或目录&#xff1a; 无论是 COPY 还是 ADD 都可以将文件或目录从构建上下文复制到容器中。支持源路径和目标路径&#xff1a; 两者都需要指定源路径和目标路径&#xff0c;用于指定要复制的文件或目录在主机上的位置以及在容器中的目标路径。 不同…

新生儿脐带护理的全面指南

引言&#xff1a; 新生儿脐带护理是父母在宝宝刚刚来到这个世界时面临的一项重要任务。正确的护理有助于预防感染&#xff0c;促进脐带迅速脱落&#xff0c;确保宝宝的健康。本文将深入探讨新生儿脐带护理的注意事项&#xff0c;为父母提供详尽的指南&#xff0c;以确保这个过…

10年码农经验分享:程序员接外包私活的6大平台和网站

关于程序员接私活&#xff0c;社会各界说法不一&#xff0c;如果你确实急用钱&#xff0c;价格又合适&#xff0c;那就去做。 程序员接私活已经是很平常的事情了&#xff0c;很多程序员&#xff0c;通过做私活承接项目&#xff0c;将自己的程序能力转化为收入。 不过&#xf…

【工具使用】Keil常用的调试操作整理介绍

目录 一、软件调试使用 1.1 基本调试操作 1.2 调试窗口 二、注意事项 一、软件调试使用 1.1 基本调试操作 上文已经说过在线调试和模拟调试的配置过程&#xff0c;但无论是在线还是模拟调试&#xff0c;调试技巧工具的使用都是一样的。 点击红色d&#xff0c;进入调试 可…
最新文章