@Document( indexName = "person" , type = "user")

public class Person {

@Id

private String id;

private String name;

@Field( type = FieldType.Nested)

private List car;

// setters-getters

}

汽车实体

public class Car {

private String name;

private String model;

//setters and getters

}

设置数据

Person foo = new Person();

foo.setName("Foo");

foo.setId("1");

List cars = new ArrayList();

Car subaru = new Car();

subaru.setName("Subaru");

subaru.setModel("Imprezza");

cars.add(subaru);

foo.setCar(cars);

索引

IndexQuery indexQuery = new IndexQuery();

indexQuery.setId(foo.getId());

indexQuery.setObject(foo);

//creating mapping

elasticsearchTemplate.putMapping(Person.class);

//indexing document

elasticsearchTemplate.index(indexQuery);

//refresh

elasticsearchTemplate.refresh(Person.class, true);

搜索

QueryBuilder builder = nestedQuery("car", boolQuery().must(termQuery("car.name", "subaru")).must(termQuery("car.model", "imprezza")));

SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();

List persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);

您可以在Nested Object Tests找到有关嵌套和内部对象的更多测试用例@Document( indexName = "person" , type = "user")

public class Person {

@Id

private String id;

private String name;

@Field( type = FieldType.Nested)

private List car;

// setters-getters

}public class Car {

private String name;

private String model;

//setters and getters

}Person foo = new Person();

foo.setName("Foo");

foo.setId("1");

List cars = new ArrayList();

Car subaru = new Car();

subaru.setName("Subaru");

subaru.setModel("Imprezza");

cars.add(subaru);

foo.setCar(cars);IndexQuery indexQuery = new IndexQuery();

indexQuery.setId(foo.getId());

indexQuery.setObject(foo);

//creating mapping

elasticsearchTemplate.putMapping(Person.class);

//indexing document

elasticsearchTemplate.index(indexQuery);

//refresh

elasticsearchTemplate.refresh(Person.class, true);QueryBuilder builder = nestedQuery("car", boolQuery().must(termQuery("car.name", "subaru")).must(termQuery("car.model", "imprezza")));

SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();

List persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);

java elasticsearch_在Spring java框架中使用ElasticSearch的最佳方式相关推荐

  1. Spring Boot框架中使用Jackson的处理总结

    1.前言 通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据 ...

  2. spring security框架中在页面通过标签获取用户信息

    2019独角兽企业重金招聘Python工程师标准>>> spring security框架中,通过<@sec.authentication property="nam ...

  3. Spring MVC框架中关于限制请求方式

    在Spring MVC框架中,@RequestMapping注解的主要作用是配置请求路径,除此以外,还可以配置请求方式,例如: @RequestMapping(value = "/add-n ...

  4. Spring Boot项目中集成Elasticsearch,并实现高效的搜索功能

    Spring Boot项目中集成Elasticsearch 前言 环境准备 引入依赖 配置Elasticsearch连接信息 定义实体类 定义Elasticsearch操作接口 实现搜索功能 总结 前 ...

  5. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载

    主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...

  6. java model类作用_SPRING框架中ModelAndView、Model、ModelMap区别及详细分析

    注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面. 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为Exte ...

  7. java intercpt_java – 在Spring的安全性中使用intercept-url

    我应该认为"首选方式"是[必然]主观.我有< intercept-url>我的security.xml中的元素,但放弃了他们赞成@RequestMapping注释与@P ...

  8. 盘点 Spring Security 框架中的八大经典设计模式

    上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式. 因此松哥今天就试着整一篇,和大家来聊一聊 Spr ...

  9. 详解Spring Boot框架中的@Conditional系列注解

    目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...

最新文章

  1. gcc 从5.3升级到6.1之后 openwrt pkg-config glib编译报错修复办法
  2. Java Socket 编程
  3. 三种活体检测方式分析
  4. python filter
  5. 设计模式--适配器(Adapter)模式
  6. matlab选择结构
  7. 32位和64位机器上C语言数据类型的大小
  8. C# 打开文件 保存文件
  9. 阿里云轻量服务器 外网卡_阿里云服务器购买流程及注意事项
  10. freemarker判断对象是否为空
  11. Java 认证考试 OCAJP 经验总结
  12. 【全网最全面C语言教程】C语言从入门到精通
  13. 微信小程序生成0到100随机整数
  14. 清华大学出版社大数据可视化技术与应用第六章Tableau实训
  15. 负载均衡技术原理浅析
  16. 加速器 (Accelerator or Offload Engine)
  17. maya2018的uv导入和导出
  18. python一行代码实现动态爱心
  19. 制作一个创意的生日快乐网页祝福网站送给心爱的她(HTML+CSS+JS)
  20. 农村承包土地调查数据库规范(试行)

热门文章

  1. 如何实现一个符合规范的Promise
  2. Ajax Control Toolkit--Slider:有朝一日倒过来
  3. Unity Application Block 3月12 发布的版本
  4. 案例分析:FICO如何从VMware迁移到OpenStack
  5. 数据结构与算法之间的关系
  6. 第五节 系统调用的三个层次(下) ——20135203齐岳
  7. ping tracert over TCP
  8. lucene分词器与搜索
  9. Nagios配置监控windows客户端
  10. MyEclipse10 中的两种FreeMarker插件的安装与配置