java elasticsearch_在Spring java框架中使用ElasticSearch的最佳方式
@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的最佳方式相关推荐
- Spring Boot框架中使用Jackson的处理总结
1.前言 通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据 ...
- spring security框架中在页面通过标签获取用户信息
2019独角兽企业重金招聘Python工程师标准>>> spring security框架中,通过<@sec.authentication property="nam ...
- Spring MVC框架中关于限制请求方式
在Spring MVC框架中,@RequestMapping注解的主要作用是配置请求路径,除此以外,还可以配置请求方式,例如: @RequestMapping(value = "/add-n ...
- Spring Boot项目中集成Elasticsearch,并实现高效的搜索功能
Spring Boot项目中集成Elasticsearch 前言 环境准备 引入依赖 配置Elasticsearch连接信息 定义实体类 定义Elasticsearch操作接口 实现搜索功能 总结 前 ...
- 高级java知识结构图,Spring高级框架课程笔记 PDF 下载
主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...
- java model类作用_SPRING框架中ModelAndView、Model、ModelMap区别及详细分析
注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面. 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为Exte ...
- java intercpt_java – 在Spring的安全性中使用intercept-url
我应该认为"首选方式"是[必然]主观.我有< intercept-url>我的security.xml中的元素,但放弃了他们赞成@RequestMapping注释与@P ...
- 盘点 Spring Security 框架中的八大经典设计模式
上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式. 因此松哥今天就试着整一篇,和大家来聊一聊 Spr ...
- 详解Spring Boot框架中的@Conditional系列注解
目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...
最新文章
- gcc 从5.3升级到6.1之后 openwrt pkg-config glib编译报错修复办法
- Java Socket 编程
- 三种活体检测方式分析
- python filter
- 设计模式--适配器(Adapter)模式
- matlab选择结构
- 32位和64位机器上C语言数据类型的大小
- C# 打开文件 保存文件
- 阿里云轻量服务器 外网卡_阿里云服务器购买流程及注意事项
- freemarker判断对象是否为空
- Java 认证考试 OCAJP 经验总结
- 【全网最全面C语言教程】C语言从入门到精通
- 微信小程序生成0到100随机整数
- 清华大学出版社大数据可视化技术与应用第六章Tableau实训
- 负载均衡技术原理浅析
- 加速器 (Accelerator or Offload Engine)
- maya2018的uv导入和导出
- python一行代码实现动态爱心
- 制作一个创意的生日快乐网页祝福网站送给心爱的她(HTML+CSS+JS)
- 农村承包土地调查数据库规范(试行)