栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何用Spring-data-elastic查询Elastic

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用Spring-data-elastic查询Elastic

首先,就文档而言,不支持自动模糊查询生成

因此,我们将不得不使用自定义存储库方法。

假设您的基本存储库是

@Repositorypublic interface UserRepository extends CrudRepository<UserEntity, Long>

您必须创建一个Custom仓库接口来添加您的自定义方法(这是所有标准Spring数据,没什么特别的)

public interface UserRepositoryCustom {    public List<User> findFuzzyByLastNameAndFirstName(String firstName, String lastName);}

并让您的历史存储库实现此接口,即:

@Repositorypublic interface UserRepository extends CrudRepository<UserEntity, Long>, UserRepositoryCustom

现在,您将需要以某种方式实现“自定义”界面。这很容易(再次参见手册,您必须遵守命名方案,以便Spring可以在运行时连接接口和实现):

public class UserRepositoryCustomImpl implements UserRepositoryCustom {    @Autowired protected ElasticsearchTemplate elasticsearchTemplate;    public List<User> findFuzzyByLastNameAndFirstName(String firstName, String lastName) {        Criteria c = new Criteria("firstName").fuzzy(firstName).and(new Criteria("lastName").fuzzy(lastName));        return elasticsearchTemplate.queryForList(new CriteriaQuery(c), CandidateEntity.class);    }}

重新编译,重新启动,您应该能够使您的存储库像这样进行模糊搜索。

再一次(请参阅问题注释),您可能还希望将查询定义为字符串,并且不需要自定义实现。这取决于你。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号