salesforce里有soql、sosl两种查询语法,soql针对模糊搜索也有‘like’关键字,然而只能针对其自带字段如:Name、Id;对于自定义添加的字段如:Message__c、Note__c采用‘like’模糊检索则会报错。

然而,一般情况业务需求上更多的会对自定义字段有模糊检索的需求,因此对此作了一些调查,然而国内salesforce并不流行,论坛博客相关讨论也很少,参考了部分JP博客、官方的相关文档,总结出两种思路来应对自定义字段模糊检索问题。

一、通过sosl(salesforce object search language)的find关键字实现

  FIND ‘sear*’ IN ALL FIELDS RETURNING Table__c 

  思路:通过find的search语句执行得到一个模糊检索的结果集,然后将结果集中的id取出放入集合内,再在主soql文中加入‘id in (模糊搜索记录的id集合)’的where条件从而达到模糊查询的目的。

if (note != null && note != '') {String findQuery = 'FIND \'' + note + '*\' IN ALL FIELDS RETURNING Test__c';List<List<sobject>> results = search.query(findQuery);Set<Id> ids = new Set<Id>();for(List<sobject> result: results){for(sobject obj : result){ids.add(obj.Id);}}string strIds = '';Integer i = 0;for (String str : ids) {if(i != ids.size()-1){strIds += '\''+str+'\'';strIds +=  ',';}else{strIds += '\''+str+'\'';}i++;}if(strIds != null && strIds != ''){soql += ' And id IN ('+strIds+')';}else{soql += ' And id = '+'\'\'';}}

  通过文档说明和测试发现:

  1. Sosl的模糊检索‘find’只能完成单词、词组以及‘hap%’这种检索,对‘%hap%’这种无能为力;
  2. 示例代码是全字段检索(IN ALL FIELDS),按API的用法换成特定列字段检索(IN Note__c FIELDS)会报错,弄得人有点烦躁;

  因此,综合考虑,还是第二种方案更为可靠。

二、通过对检索所得结果集的特定字段通过函数进行过滤实现

  obj.col.contain(keyword)

 思路:将soql执行得到的List集合遍历,对各个obj的Note__c字段进行关键字模糊搜索过滤(contain()函数),满足条件的添加到结果List中,最后返回结果List。

List<Test__c> temp = database.query(soql);List<Test__c> resultList = new List<Test__c>();if(strMemo!=null&&strMemo!=''){for(Test__c dr:temp){if(dr.Note__c!=null&&dr.Note__c!=''){if(dr.Msg__c.contains(strMemo)){resultList.add(dr);}}}}else{resultList = temp;}return resultList;

  

  最后说下自己的看法,这种两种方法初看起来都有点效率低下,毕竟比起sql文中like来确实费劲不少,但就实际的页面效果来看并没有多大时间损耗,数据量万条以内可行性还是挺高的。

转载于:https://www.cnblogs.com/codingHeart/p/6645607.html

(通用版)salesforce中soql及sosl的伪‘Like’模糊检索相关推荐

  1. 通用版程序在the new iPad与Xcode4.3中的不兼容。

    开发的一款通用版程序由于the new ipad的出现,运行出现了不兼容现像. 原有程序启动图片default.png, default@2x.png, default~ipad.png,出现启动画面 ...

  2. 行业垂直型SaaS进击蓝海 中国版Salesforce潜藏何处

    文|熔财经 作者|一城 到底谁才能成为中国版Salesforce?发展多年后,这个追问在SaaS行业一直没有停歇. 但是,先不论SaaS最狂热的时期已经过去,大量创业创新企业折戟沉沙,有不少转型云服务 ...

  3. 中国版Salesforce「难产」

    作为1999年就开始上云.最先推出PaaS平台的企业,Salesforce不仅为资本市场创造了大量云计算专用名词,更踩对了每一个节点,收获了企业服务市场海量的红利,顺利得让人嫉妒. 至今为止,国内市场 ...

  4. Salesforce中jquery ui中的autoComplete实现自动联想

    项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...

  5. 大掌柜商业管理系统服务器地址,大掌柜软件通用版操作说明.doc

    大掌柜软件通用版操作说明 PAGE PAGE 157 系统应用基础 内容提要: 大掌柜软件专业版对系统的要求 数据库SQL server2000的安装 大掌柜软件专业版服务器端与客户端的安装 加密狗的 ...

  6. 移动云正式发布基于龙蜥 Anolis OS 的 BC-Linux V8.2 通用版操作系统

    简介: 2020年12月CentOS项目组宣布CentOS 8将于2021年12月31日结束支持,这意味着从2022年开始,使用CentOS 8的用户,将无法得到来自官方的新硬件支持.bug修复和安全 ...

  7. 学生php实训个人总结300字,实训总结300字通用版5篇

    [导语]实训目的要明确,在理论上验证定理,公式,算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法.一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型 ...

  8. 七牛非Cocoapods 手动集成霹雳直播SDK(通用版)

    引言 一直想写一个通用版的教程,霹雳直播SDK更新太快,每一版的更新,都要重新更新一下之前写的单独的教程.我是个懒人,想要一下解决所有的问题,授人以鱼不如授人以渔,这个博客重点会讲需要用非Cocoap ...

  9. java 浏览器 qq_qq浏览器通用版 手机QQ浏览器v2.1Java通用版下载

    qq浏览器通用版 手机QQ浏览器v2.1Java通用版下载 手机QQ浏览器v2.1通用版 软件类型: 手机浏览器 适用手机: java 软件大小: 591 KB 更新日期: 2011-06-12 浏览 ...

  10. springboot easyexcel不创建对象导入excel 通用版

    文章目录 背景知识介绍 有数据对象读方式 创建类实现ReadListener 无额外实现类,since: 3.0.0-beta1 不创建数据对象读方式 实践 思路 抽象监听类 抽象业务处理类 具体业务 ...

最新文章

  1. 为什么我能从普通程序员干到大厂总监?
  2. linux ioctl 设备操作函数 r3到r0 应用层 驱动层 通讯
  3. 系统调用与软件中断SWI的实现
  4. Python 神工具包!翻译、文字识别、语音转文字统统搞定
  5. JEP 277“增强弃用”非常好。 但这是一个更好的选择
  6. 【BZOJ3677】[Apio2014]连珠线 换根DP
  7. 计算机教室卡通画,电脑绘画对彩色童年的应用
  8. LeetCode —— 532. 数组中的K-diff数对(Python)
  9. Unity Shader _Time 的单位
  10. 移动磁盘故障,如何在Mac修复?
  11. 华为又又又白给了,自动化福利领取了吗?
  12. navicat 解析sql_Navicat使用详解
  13. TL-R406 IP带宽控制功能设置指南
  14. docker(三)docker仓库
  15. AminoCapital:大数据+机械学习引领今年硅谷趋势
  16. 2013最新手机QQ源码源码下载
  17. SEO优化快速排名技术
  18. oracle instantclient(即时客户端安装) 中文乱码
  19. 【拓展】深度解析蚂蚁Ant Design的设计原则
  20. ZigBee交通事故警示装置

热门文章

  1. spark mlilib 聚类 混合高斯
  2. DevExpress 破解方式
  3. PHP设计模式——简单工厂
  4. [Swift]LeetCode229. 求众数 II | Majority Element II
  5. (转)限制字符长度及特殊符号不能输入
  6. linux驱动开发(十)——misc杂散设备
  7. Unity NGUI 网络斗地主 -界面制作
  8. DESCRIBE TABLE
  9. 每一个与众不同的水瓶座
  10. 《视觉SLAM十四讲》课后习题—ch7(更新中……)