30、springboot与检索(2)
项目中进行整合:
1、整合 新建项目加入依赖(NoSql)




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)的更多相关文章
- java框架之SpringBoot(13)-检索及整合Elasticsearch
ElasticSearch介绍 简介 我们的应用经常需要使用检索功能,开源的 Elasticsearch 是目前全文搜索引擎的首选.它可以快速的存储.搜索和分析海量数据.SpringBoot 通过整合 ...
- 29、springboot与检索(1)
一.检索 我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选. 他可以快速的存储.搜索和分析海量数据.Spring Boot通过整合Spring Data E ...
- springboot 注册dao层 service 层
可以使用三种注解来引入DAO层的接口到spring容器中.1.@Mapper,写在每一个DAO层接口上,如下: 2.@MapperScan和@ComponentScan两者之一.前者的意义是将指定包中 ...
- 千锋很火的SpringBoot实战开发教程视频
springboot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...
- ElasticSearch+Springboot实际应用:索引同步建设,搜索过程
1.介绍 springboot框架,众多自动化的部署和约定配置,造成了springboot的着手麻烦,熟练后可以快速快捷进行开发,常用作快捷开发的java底层框架.各位看官都是大神,自行体会. ...
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- springboot 知识点
---恢复内容开始--- 1springBoot项目引入方式, 1,继承自父 project (需要没有付项目才能用,一般我们的项目都会有 父 项目 所以 这种方式不推荐 ,记住有这种方式 就可以了) ...
- 微服务springboot视频最新SpringBoot2.0.3版本技术视频教程【免费学习】
超火爆的springboot微服务技术怎么学,看这里,springboot超详细的教程↓↓↓↓↓↓https://ke.qq.com/course/179440?tuin=9b386640 01.sp ...
- SpringBoot Redis 实践指南
前言 SpringBoot Cache 是一个很好的缓存框架,可以兼容多种缓存实现,数据量较大的情况下,Redis 应该是最多被使用的. 本文重点介绍 SpringBoot 和 Redis 整合使用的 ...
随机推荐
- 出现<authentication mode="Windows"/>错误解决办法
转自:https://blog.csdn.net/clever101/article/details/39671715 网上下载的asp.net源码出现 <authentication mode ...
- [PHP] PHP的脚本执行
PHP的脚本执行:PHP的脚本执行还是会经过编译环节, 只不过它们一般会在运行的时候实时进行编译1.启动PHP及Zend引擎, 加载注册的扩展模块2.读取脚本文件,Zend引擎对脚本文件进行词法分析, ...
- SpringBoot 之Quartz的使用
对于Quartz的使用,还是想说一句,SpringBoot真的很好用啊! 第一步:当然是引入依赖啦 <parent> <groupId>org.springframework. ...
- mysql分表,批量生成数据
一.mysql的分表策略 根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉: 1,水平分割: 水平(横向)拆分:将同一个表的数据进行分块保存到不同的 ...
- 高性能分布式锁-redisson的使用
1,概述:在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多 ...
- BZOJ1266 [AHOI2006]上学路线
Description 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可: ...
- Microsoft Toolkit.exe激活office 2010方法
1.双击打开激活工具 2.点击下方的office图标. 3.选择Activation标签,下拉选择AutoKMS,点击Install,完成后点击Activate,即可.
- Qt获取控件位置,坐标总结
总结的结果是: QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标. 总结一:经过试验,QMouseEvent::globalPos() 和 QCursor::pos()效果 ...
- MooseFS安装部署
环境信息 Master服务器 dev04 chunkserver服务器 dev02.dev03.dev04 metalogger服务器 dev03 mount客户端 dev01.dev02 安装前下载 ...
- 算法之杨辉三角形(Java语言)
杨辉三角形, 又称贾宪三角形.帕斯卡三角形. 前9层写出来如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 ...