首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两列的Hibernate通配符查询

两列的Hibernate通配符查询
EN

Stack Overflow用户
提问于 2015-11-24 06:21:35
回答 1查看 733关注 0票数 0

我正试着按姓名和姓氏从数据库中挑选人。用户可以在一个输入框中键入姓名或姓氏或两者。例如,如果用户键入“just”,它应该返回John,但用户也可以只键入"Joh“或"Smi”来获取此人

如何构建查询来处理通配符和用户输入的所有单词?我的实际代码如下所示:

代码语言:javascript
复制
String queryFilter = "";
for(String part : filter.split(" ")){
    queryFilter+=part.toLowerCase()+"* ";
}
queryFilter = queryFilter.trim();

query = queryBuilder.keyword().wildcard().onField("firstname").andField("lastname").matching(queryFilter).createQuery();

这不能处理来自用户输入的多个单词,由于.wildcard(),但是当我删除.wildcard()时,我将无法搜索不确切的名称。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 15:57:33

您希望构建一个布尔查询,其中一个部分的目标是名字,另一个部分是姓氏。就像这样:

查询luceneQuery = queryBuilder .bool() .should( ) .should( ) .createQuery();

还请参阅Hibernate搜索在线文档- single/#search-query-querydsl -特别是“组合查询”部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33886744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档