`

模糊搜索条件工具类实现

阅读更多
  • 备份存档

  • 需求:

    1. 设计公共工具类组合搜索条件语句;
    2. 关键字以空格分隔;
    3. 多个空格将视为一个空格;
  • 思路:

    1. 传入两个参数,一个为输入值,一个为匹配字段;
    2. 利用正则将输入值处理为将要匹配的数组;
    3. 对匹配字段进行语句组合;
  • 实现:(注:该方法是在ofbiz框架中实现,如果是ssh或别的框架中,使用jdbc,实现原理相同)

       
        public static EntityCondition getFuzzyMatchingFromInput(String input, String field) {
            String result = StringUtil.changeSpecialForSearch(input).trim();
            String[] strs = result.split("[\\s]+");
            List<EntityCondition> conditionList = FastList.newInstance();
            if (strs.length == 0) {
                conditionList.add(EntityCondition.makeCondition(field, EntityOperator.LIKE, "%\\" + input + "%"));
            } else {
                for (int i = 0; i < strs.length; i++) {
    
                    conditionList.add(EntityCondition.makeCondition(field, EntityOperator.LIKE, "%"
                                    + strs[i].replace("%", "\\%") + "%"));
                }
            }
            return EntityCondition.makeCondition(conditionList, EntityOperator.OR);
        }
     
  • 注意点:

    1. 注意处理输入值的连续空格,如果只使用[\\s]来分隔,则可能会搜索出全部记录;
    2. changeSpecialForSearch 是另一个工具类方法,会将输入值中所有特殊字符转换但并不包含%
    3. 由于%没有被处理,则要再次对输入值进行%处理
0
0
分享到:
评论

相关推荐

    es7.15.2版本全部封装工具类

    在Java开发中,工具类是常见的代码组织形式,它们封装了特定功能,便于代码复用和维护。这里我们关注的是一个名为...在实际应用中,只需导入该工具类,就可以轻松地进行数据管理,从而将更多精力放在业务需求的实现上。

    提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

    本文将深入探讨如何实现一个基于JavaFX的模糊查询系统,该系统支持汉字、拼音以及拼音首字母的左侧匹配。这个功能对于提高用户在大量中文数据中查找信息的效率至关重要。 首先,我们需要了解JavaFX这一强大的Java...

    struts+hibernate 整合实现模糊搜索

    4. **模糊搜索实现**: 模糊搜索通常涉及SQL的LIKE操作或全文搜索引擎。在Hibernate中,你可以使用HQL(Hibernate Query Language)或Criteria API来构造模糊查询。例如,使用`%`通配符进行模糊匹配。 5. **Action与...

    MFC文件搜索程序

    通过设置不同的搜索条件,如文件名、大小、日期等,我们可以实现对文件的精确或模糊搜索。 **3. 模糊搜索** 模糊搜索通常涉及到字符串匹配算法,如Levenshtein距离、Jaccard相似度或者正则表达式。在MFC中,可以...

    Lucene全文搜索 分组,精确查找,模糊查找

    《Lucene全文搜索:分组、精确查找与模糊查找详解》 在IT行业中,全文搜索引擎的使用越来越广泛,而Apache Lucene作为一款强大的开源全文检索库,深受开发者们的喜爱。它提供了高效的索引和查询功能,使得在海量...

    小工具类 搜索框 (源码).zip

    "小工具类 搜索框 (源码).zip"是一个包含源代码的压缩包,专为实现搜索功能而设计。它可能是为了帮助开发者理解如何构建自定义的搜索组件或者提供一个可直接使用的代码模板。在本文中,我们将深入探讨搜索框的设计...

    超级好用的文件搜索工具

    它支持模糊搜索和通配符搜索,这意味着用户可以使用更加灵活多变的搜索模式来获取结果。例如,用户可以通过输入部分文件名和通配符来快速找到一系列相关文件,而无需记住完整的文件名。这种高级搜索能力极大地提高了...

    文件搜索自制工具.zip

    C++中的`std::string`提供了丰富的字符串操作功能,而正则表达式库(`&lt;regex&gt;`)则可以用于复杂的字符串匹配和解析搜索条件。对于需要按照日期或大小等属性进行排序的复杂搜索需求,可能还需要深入理解并使用系统级别...

    C#根据条件查找硬盘指定文件

    最后,使用者可以根据自己的需求对系统进行适当的修改,例如添加更多的搜索条件,优化搜索算法,或者改进用户界面。这种可扩展性和灵活性是软件设计的基本原则之一。 总的来说,实现“C#根据条件查找硬盘指定文件”...

    在ios中实现模糊搜索功能

    本项目提供了一种使用NSPredicate类实现的模糊搜索解决方案,相比传统的for循环遍历方式,NSPredicate在处理大数据量时具有更好的性能表现。 NSPredicate是Objective-C中的一个强大工具,它是用于在集合对象中进行...

    小烦内存搜索工具

    其次,工具通常具备高级搜索选项,允许用户设置搜索条件,如大小写敏感性、十六进制或十进制表示、正则表达式等,以提高搜索的精确度。此外,一些版本可能还支持模糊搜索,允许用户查找近似值或范围内的值,这对于...

    C++控制台学生信息管理系统(带模糊搜索功能)

    在本项目中,我们讨论的是一个使用C++编程语言实现的控制台学生信息管理系统,它具备基本的学生数据管理功能,并且具有模糊搜索功能。这样的系统对于教学、小型机构或者个人学习C++编程以及数据管理非常有帮助。接...

    基于模糊积分融合方法的智能元搜索引擎系统

    实验结果表明,该元搜索引擎在相同条件下具有更好的搜索效果,特别是在处理复杂查询时的优势更为明显。 #### 结论 综上所述,基于模糊积分融合方法的智能元搜索引擎系统通过引入智能搜索代理的设计框架、优化搜索...

    搜索本地文件工具

    本地文件搜索工具通常采用先进的索引技术和模糊匹配算法,能够在短时间内扫描整个硬盘,甚至包括网络共享文件,以实现快速的文件检索。这些工具通常具有实时更新索引的能力,确保新添加或修改的文件能被立即搜索到。...

    快速搜索文件工具

    高级用户甚至可以利用模糊匹配和正则表达式来实现更为复杂的搜索策略。这些功能确保了“快速搜索文件工具”能够适应不同的工作环境和需求。 再进一步,为了提高用户的操作体验,“快速搜索文件工具”可能还集成了...

    swift-Swift中简单快速的模糊字符串匹配

    Trie允许快速地查找包含特定前缀的字符串,这在实现模糊搜索时非常有效。在Swift中,我们可以自定义Trie结构体,利用字典存储每个字符的下一个节点,从而构建出一个完整的字符路径网络。 以下是一个简单的模糊匹配...

    c#写的类似windows文件查询搜索

    开发者可能使用`Directory`和`FileInfo`类来遍历文件和目录,获取文件属性,并实现文件搜索功能。 3. **文件查询和过滤**:为了实现搜索功能,开发者可能编写了逻辑来处理用户的输入,使用正则表达式或者基于字符串...

    【idea全局搜索】intellij idea 怎么全局搜索

    通过高级搜索选项,你可以细化搜索条件,例如: - **文件类型**:只搜索特定类型的文件,如.java、.xml等。 - **文件路径**:限制搜索范围在特定的目录或子目录下。 - **符号匹配**:查找特定类型的符号,如类、...

    搜索工具

    在IT行业中,搜索技术涉及到多个层面,包括但不限于关键词匹配、全文索引、模糊搜索、智能推荐等。一个优秀的搜索工具通常会结合这些技术,以提供精确、快速的搜索结果。 在提供的压缩包子文件中,我们可以看到以下...

    combobox 下拉多选框带搜索功能

    4. 数据过滤和列表更新,根据搜索条件实时更新显示的选项。 5. 可能使用了某种状态管理机制来跟踪选中状态和搜索状态。 6. 良好的封装性和API设计,以便于其他开发者集成和自定义。 这个压缩包文件中的...

Global site tag (gtag.js) - Google Analytics