问题描述
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
...
什么查询可以做到?
解决方法
上面的查询中指出了一些错误:
- 左方括号不匹配
- 您忘记了Function.lower(Expression.property(“ lName”))。
我认为当您进行自己的测试时,查询语法是正确的,否则您将不会获得任何结果。
您得到的结果与like
运算符一样。如果您希望查询包括:
Samuel Erick
Erick Samuel
Samuel Jameson
结果中,您可以尝试使用In
运算符。