项目中进行整合:

1、整合 新建项目加入依赖(NoSql)

springboot默认使用SpringDate ElasticSearch模块进行操作
 
查看自动配置类:

SpringBoot默认支持两种技术来和ES交互“
1、Jest

2、SpringDate ElasticSearch
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQYAAAAXCAYAAADpyOG2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAVPSURBVHhe7VtLbxxFEOYfYTlS4hxyADuwiXnIjpFgIYmiAMmBaBcJhCWSi2XAcEHKYYPCQ+RgbQ4ocAFZawnxz5qu7qmZ6urqnund8Xoj1eGT3dVd1fXqb3omzisbF9cMYHt721y7elmhUCiMEoNCoYigxKBQKCIoMSgUighKDAqFIsJixHD9NfPm/Qfm6sMfzNY3PznA7yCDOVFHoVCsPOYmhsFwaDYtEWx+/6sMOwdrJN02DLbumSezx2a8tSHOl2IwfGSms2NzOOzHXt/w8a6uf31hsLVjDqczc3p6aiZfP1yJmiyzN/ru67PEXMTgSOFIIAMOuyZFDrRJELMqaUoM0hqfr9nknjjfJ7w/TW362vPWwXFta1VqosQgo5gYBvYVIXtT4ICbg/BagY3+ZBQnadEE5myvIjoRAzTw9Ng2cfe8zJOHweixIwOqA7LpwU6wbh6MJ7Ne7CyC8+yN8yCGj+9/Ym7sXgtkMAY5lXEUEwN8PwgO/tEv5tLdsVnb3jPrb79v1m/cDOct3DcHZkeJoUEXYoCnLRwqOFxd4yrNg/fj7PKmxLB8YkASQHLg4xSKiQE+LtJDv3H3c3Nh76Z5/dv0LQJ0uJ0SYvDXveZqS3XgwNRXXqsz2vzUNXctmz4yH30A77PEXnUAcA02K7fVtt7NJXxr4vO64Mcta0+y5WWWGA780xpAr+/elicOeHqjrWZ/nis5D9L+QZzMtoSsvhAH5gpIgeqMMjWZVTZqnxMxwjiZZ6Euke92bVtvdI2Pg9tp6szjCH1E/VQvpuQ5IBkMP9zrRAqAYmLgrxGvvvGuubJ/FMgiWB1uBwuKQbpA8f2TJNCtm5CDAM2Lc6xhuO36kAaN5AvGC5q2VTVD9TSntrO+VevixhL2ruSp9296YCN/mN9hrCwPwv6Bzy3E0KrfEge9MYR+er3Gzyp3BcQQ5rm9Ll17oyS+Wkew08iJH6V9nZB3AZIC/JTmOXoghnfMla++C2QRMsSABQrnmgSiTGLKulCsONniJ5o/acuup+SFoEWXfYvjy+9NDrvTlQ8UH/NmCWLleRD2p2tS/tVr2/QL4mirCZWVxEjRpS6tfhTEV+sk8uj1mzgAZX0ty9uwlBsDf5W4eOeBWd+VXyWe/jkzL07+M0//+CeykysoTaAvXPog+PXeFiastPgUka3M+pxvUnz5hmmK7XUxFt8M2DxRE7F85HxINz7dq/GDo1SfzsF4WcTg57vVpdWPgvhqHcGOkzv9aq+Mj81672tMELJcApICkgEfp9DDx8efzaU7I7N2fdesvfWeubB328l3fnzmSGH/9xfuJ7fDCxTOkQSyJAPD0kNxiAUm9rjtsDHANpmz40NbnLStcD1gPOngmxBfcm8nlxvO7RE1TGPHx9bo5nxAPWxGJxNjYI1o14BOm34uDhgv9irRLUanX1AXyY954qM+xvHQOld75Xy0tsReTMhhnIJEAkgOVMZRTAwl/1wJhABrc8QQPgVpYsNC4pqpPZSUWaHZan3ywQ4S7WQ2+dEHJldEr0cPXcoWXQ9oCp72LVU4ae9cw4FP1BcElWOs3Ac6FzY3iZOsRUDT4rxbQ3OR0c/FAeMUMTRjzIvVIR8fYT4Vo5TnXF2oLbE35ozP+0/mknUO/cZ9uvZ1St43iokB0OUPnKZ//+sIAfH8rxPRlkIhgT9RFcvFXMQAaPuTaCSEL/e/qH+X7CgU/ukZP7XplV6xXMxNDA6Z/0SFZDAef6bEoGgFvXoDlBTOF4sRQwbw6oCEANBXCYXi5cGZEYNCoXh5ERDD5m8nCoVCocSgUCg4Tsz/YxXmqPH/OdUAAAAASUVORK5CYII=" alt="" />
@Bean
@ConditionalOnMissingBean
public TransportClient elasticsearchClient() throws Exception {
TransportClientFactoryBean factory = new TransportClientFactoryBean();
factory.setClusterNodes(this.properties.getClusterNodes());
factory.setProperties(this.createProperties());
factory.afterPropertiesSet();
return factory.getObject();
} private Properties createProperties() {
Properties properties = new Properties();
properties.put("cluster.name", this.properties.getClusterName());
properties.putAll(this.properties.getProperties());
return properties;
}

public class ElasticsearchProperties {
private String clusterName = "elasticsearch";
private String clusterNodes;
private Map<String, String> properties = new HashMap();

@Bean
@ConditionalOnMissingBean
@ConditionalOnBean({Client.class})
public ElasticsearchTemplate elasticsearchTemplate(Client client, ElasticsearchConverter converter) {
try {
return new ElasticsearchTemplate(client, converter);
} catch (Exception var4) {
throw new IllegalStateException(var4);
}
}

2、测试

1、Jest方式

依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency> <!-- https://mvnrepository.com/artifact/io.searchbox/jest -->
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.</version>
</dependency>

@Bean(
destroyMethod = "shutdownClient"
)
@ConditionalOnMissingBean
public JestClient jestClient() {
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(this.createHttpClientConfig());
return factory.getObject();
}
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAAiCAYAAADGfuJNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAR0SURBVHhe7ZpLTxNRFID7j0SIPARU+sACvniYaEUMwddCQk00soCNQUU3RhZgEI0utC4MutFgSYz/7DjnTs/Mmdsz0xaZttOexZfOfZ77+ObOjJgaPZeGXH4STvadguEz52Dk7FhH023z7URwD1Nj2ZzZwP6hYbFSp9Ft8+1EcA9T6dw4nBo83SWn7Rh003w7EdrDFCaGRs6IlTqNs+ms+e2W+XYitIdGXEVJGiqukkhUXCWRpKampkBRkkZqsL8HCMyYyA0pSstBF6WTllBxlbZExVUSiYqrJBIVV0kkKq6SSOIXd3IMzt9fhtzaK8g+e2vAa8zDMrGNotQgVnHzhQJkHFEzL9/LOGVYR2qr+OQL61Aqf4aNwqBYfhzks/dgp7wFxWx8MY6T2MQ10m4Ksto4dWrJm1/ZgnJpHRaOaVHz2WnYKJXh8PDQY2elfTdMxa0mFnHzzitA5ElrgydvxGvD/4pLopKcbtoXoRliNII93mbQCnFv378DszMTgTxMYz7Pk4hFXHx/DYi5uQcDS0XomZqD3ovXoHf2ZrDcwbzzCn0hcYuLFLfLUHo67aVbSbeIS5KSvHY6iljExY8vLuXg0kPom7sJ6efhpzC2kfpCbHHdRfYf9Vy4haefvfyysxErmbuButjPfOZKqLi+NG4MimvHxL5pk+02VIeLFzZmu+3vL29gj8fB8V5fc54IPJ7cF2LPXxJRau/msRjmKSTPJSxGPbFtSNbCjbm6pUViEdd+TTgxfhlGVzcDeVU4baS+EC6uu8DsMc9OJ3exqxfMPsHctPyqQHWDYrobzQUxY6rUEdsEyiPGLMbzy02azeso8+dIc/HzKYbT5zY7KPhcwta4jthhkLT4K5VLNEncSzD65EUgr4p6xXWu6a7m+KcGSuBvrGlvi1BJU1te365r8lh8L48LI7Xh5ZFjjm5r0lzcI8yfI83F5DNxKU86QcPXuHZsibY6ce1Xhf7FZeidkV8Vdr+XYf/gL+x++yX2heAClrfvmeuwhefQxtMiVolg0vICiyKFiiv375e7eVFjrtXWpC1xG51/oKwOcd14/qksnaZhMaJi25C0JKudjiIWcas/zt7BwOIK9EzOQM+Fq8777i2TP/36k5F29eO++ZX6ooXwFrFyZ/ONLm77C75Bm802n1/7ZQ2IW4lJYzB5TABqQzcXYm4265QSxyzGs8bLxT3K/E17usmC7TG94Z3WlX4suQNziYgh5WM6DElSkpfnScQibiP/HIbCYl1JXPxgMo8pJgTiboT84UBt7Hb02MMNkT7OiLBFpw33+mYnkNfGEUgqN3VCxhwWLzBe++Oswfm79f358vbBm4uu3TFRPyVnXjx+2BqH5cdBLOIi9fwBovTzjxGW+PrjQOyr3an3hFGOj9jERWr9yZeEfbz6yLuW+ml3VNzmE6u4hoj/ZEOyFosPVFylIeIXNwJ8NSBhkaS+KijNp6XiKspRaVjczIcDRWk5Kq6SSGqKixU4UieK0mxsL21S8/NpUJRkkYZ/muWR6FH3EyMAAAAASUVORK5CYII=" alt="" />相关的配置
private List<String> uris = new ArrayList(Collections.singletonList("http://localhost:9200"));
 
配置文件:
spring.elasticsearch.jest.uris=http://192.168.1.121:9200

pojo类:

public class Article {
//标识为主键
//@JestId

private Integer id;
private String author;
private String title;
}

测试类:

@Autowired
JestClient jestClient; @Test
public void contextLoads() {
System.out.println(jestClient);
//给es保存索引文档
Article article = new Article();
article.setId();
article.setAuthor("mrchengs");
article.setTitle("EsTest"); String id = String.valueOf(article.getId());
//构建一个索引功能
//new Index.Builder(article).index("cr").type("msg").id()
//cr是索引 msg是类型 此时也是可以是设置id的,但是在类中已经进行了设置
Index index = new Index.Builder(article).index("cr").type("msg").id(id).build(); try {
jestClient.execute(index);
} catch (IOException e) {
e.printStackTrace();
} }
此时的可以查看结果:

测试搜索功能的实现:

{"took":,"timed_out":false,"_shards":{"total":,"successful":,"skipped":,"failed":},"hits":{"total":,"max_score":0.2876821,"hits":[{"_index":"cr","_type":"msg","_id":"","_score":0.2876821,"_source":{"id":,"author":"mrchengs","title":"EsTest"}}]}}

 2、SpringDate ElasticSearch

待更新.......

30、springboot与检索(2)的更多相关文章

  1. java框架之SpringBoot(13)-检索及整合Elasticsearch

    ElasticSearch介绍 简介 我们的应用经常需要使用检索功能,开源的 Elasticsearch 是目前全文搜索引擎的首选.它可以快速的存储.搜索和分析海量数据.SpringBoot 通过整合 ...

  2. 29、springboot与检索(1)

    一.检索 我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选. 他可以快速的存储.搜索和分析海量数据.Spring Boot通过整合Spring Data E ...

  3. springboot 注册dao层 service 层

    可以使用三种注解来引入DAO层的接口到spring容器中.1.@Mapper,写在每一个DAO层接口上,如下: 2.@MapperScan和@ComponentScan两者之一.前者的意义是将指定包中 ...

  4. 千锋很火的SpringBoot实战开发教程视频

    springboot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  5. ElasticSearch+Springboot实际应用:索引同步建设,搜索过程

    1.介绍 springboot框架,众多自动化的部署和约定配置,造成了springboot的着手麻烦,熟练后可以快速快捷进行开发,常用作快捷开发的java底层框架.各位看官都是大神,自行体会.     ...

  6. SpringBoot集成MyBatis的分页插件 PageHelper

    首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...

  7. springboot 知识点

    ---恢复内容开始--- 1springBoot项目引入方式, 1,继承自父 project (需要没有付项目才能用,一般我们的项目都会有 父 项目 所以 这种方式不推荐 ,记住有这种方式 就可以了) ...

  8. 微服务springboot视频最新SpringBoot2.0.3版本技术视频教程【免费学习】

    超火爆的springboot微服务技术怎么学,看这里,springboot超详细的教程↓↓↓↓↓↓https://ke.qq.com/course/179440?tuin=9b386640 01.sp ...

  9. SpringBoot Redis 实践指南

    前言 SpringBoot Cache 是一个很好的缓存框架,可以兼容多种缓存实现,数据量较大的情况下,Redis 应该是最多被使用的. 本文重点介绍 SpringBoot 和 Redis 整合使用的 ...

随机推荐

  1. js 数组常用的一些方法

    数组可以说是js经常会遇到的数据结构,以下我们对数组进行详细的学习! 一.数组的创建 var mycars = new Array(): || new Array(3);  || new Array( ...

  2. InfluxDB 的卸载与重装

    我是通过下面方式安装的,所以卸载也是用的 rpm 的卸载命令 wget http://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm su ...

  3. MySQL:SQL进阶

    一.数据库相关理论 1.系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_s ...

  4. angular开发中的两大问题

    一.在我们的angular开发中,会请求数据但轮播图等...在请求过数据后他的事件和方法将不再执行: 看我们的解决方案一: app.controller("text",functi ...

  5. 用WebStorm开发TypeScript

    为什么是TypeScript 最近在做H5的游戏,最终选定的TypeScript作为开发语言.主要是看重他有强类型和Class,作为习惯使用AS3,Java等强类型编程的人来说,还是习惯这种编程写法. ...

  6. Vue2实践揭秘 - 书,读后作了一个简单摘要

    jd上买了本实践相关的, 看过后,的确是实践项目后的一些分享,有些网上的一些vue2教程没怎么提及 ----------- 看完了,有些启发,作了个简单摘要作记录, 对vue2感兴趣的,可以自己网上搜 ...

  7. Oracle 截取指定长度的字符

    去掉回车,换行符号,截取指定长度的字符 具体代码示例: --Function --去掉前后空格,截取字符,字符长度为P_Length create or replace function get_St ...

  8. GitHub和SVN的区别

    今天了解一下svn和github的区别. 一.版本控制 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一.版本控制最主要的功能就是追踪文件的变 ...

  9. 设计能长按并有动画效果且能触发事件的高级view

    设计能长按并有动画效果且能触发事件的高级view 效果图: 源码: LongTapAnimationView.h 与 LongTapAnimationView.m // // LongTapAnima ...

  10. Linux下的Mysql的远程访问

    mysql的服务端[192.168.25.136] 1,在远程访问之前需先配置防火墙 service iptables stop (不推荐,可配置开通3306端口) 2,授权 mysql> gr ...