项目中进行整合:

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. 【8】memcached实例

    一.memcached环境搭建 1.下载后解压到D:\memcached(下载地址:memcached-win64下载地址) 2.安装到windows服务,打开cmd命令行,进入memcached目录 ...

  2. 十二、curator recipes之双重屏障DoubleBarrier

    简介 curator实现了单个屏障barrier和双重屏障DoubleBarrier,单个屏障就是在一个进程里面设置了屏障,并等待其它进程去移除这个屏障,否则一直阻塞.双重屏障就是设置了两道屏障,两个 ...

  3. IO流的复习笔记

    IO字节流和缓冲流 IO字节流的读取和写入 读取 import java.io.FileInputStream; import java.io.FileNotFoundException; impor ...

  4. Java集成groovy之GroovyShell、GroovyScriptEngine、GroovyClassLoader

    GroovyClassLoader 用 Groovy 的 GroovyClassLoader ,动态地加载一个脚本并执行它的行为.GroovyClassLoader是一个定制的类装载器,负责解释加载J ...

  5. 为什么要学习 UML?

    UML 的首要价值是沟通和理解.好的图形可以帮助沟通设计思想,尤其是要回避许多细节时,图形也可以帮助你理解软件系统或业务流程.作为团队的成员,尝试弄清楚某些东西时,图形有助于理解和沟通整个团队所理解到 ...

  6. 武汉邀请赛 Key Logger 双向链表

    Key Logger Time Limit: 3000ms Case Time Limit: 3000ms Memory Limit: 65536KB   64-bit integer IO form ...

  7. spring boot包扫描不到controller层

    启动类代码 package com.maven.demo; import org.mybatis.spring.annotation.MapperScan; import org.springfram ...

  8. 0 test classes found in package in XXXX

    除了参考其他的方法,要注意XXXX位置下是否有空文件夹,删掉.

  9. BZOJ4602: [Sdoi2016]齿轮(并查集 启发式合并)

    题意 题目链接 Sol 和cc的一道题很像啊 对于初始的\(N\)个点,每加一条限制实际上就是合并了两个联通块. 那么我们预处理出\(val[i]\)表示的是\(i\)节点所在的联通块根节点转了\(1 ...

  10. windows&cmd常用命令&快捷键

    1: cls即CLear Screen 功能:清除屏幕上的所有显示 2:Win+Tab快捷键进行3D窗口切换还有比较快速切换窗口的新方法. 3:利用Alt+Tab快捷键进行切换窗口时,在桌面中间会显示 ...