微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查询以搜索是否出现搜索字符串中的任何单词

如何解决查询以搜索是否出现搜索字符串中的任何单词

我有以下文件

     fName : "Samuel",sName : "Erick Jameson"

如果搜索是通过塞缪尔(Samuel),埃里克(Erick),詹姆森(Jameson),埃里克(Erick Jameson),塞缪尔埃里克(Samuel Erick)等进行搜索,我想返回用户

基本上,如果fName或sName中存在任何单词,我想将其返回。现在,我有以下查询

 Function.lower(Expression.property("fName")).like(Expression.string("%" + searchTermlC + "%"))))
 .or((Expression.property("lName").like(Expression.string("%" + searchTermlC + "%")));

我的搜索结果是:

 Samuel              found
 Erick               found
 Jameson             found
 Erick Jameson       found

未找到以下内容

 Samuel Erick
 Erick Samuel
 Samuel Jameson

...

什么查询可以做到?

解决方法

上面的查询中指出了一些错误:

  1. 左方括号不匹配
  2. 您忘记了Function.lower(Expression.property(“ lName”))。

我认为当您进行自己的测试时,查询语法是正确的,否则您将不会获得任何结果。

您得到的结果与like运算符一样。如果您希望查询包括:

Samuel Erick
Erick Samuel
Samuel Jameson

结果中,您可以尝试使用In运算符。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。