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 整合使用的 ...
 
随机推荐
- Groovy内存机制详解
			
groovy每执行一次脚本,都会生成一个脚本的class对象,并new一个InnerLoader去加载这个对象. 所有的脚本都是由GroovyClassLoader加载的,每次加载脚本都会生成一个新的 ...
 - centos 6无法上外网
			
1.先配置/etc/sysconfig/network-scripts/ifcfg-eth0 配置完成后能ping通内网.网关,但是上不了外网 DEVICE=eth0 HWADDR=:0C::FF:: ...
 - 原型模式(GOF23)
			
依赖关系的倒置 基本假设在于抽象变化的慢,而依赖于抽象的细节变化的快,所以要做到抽象不依赖于实现的细节,而实现细节应该依赖于抽象 设计模式不是代码的复用,而是经验的复用,通过分析来定义抽象和细节,不要 ...
 - <meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">的作用
			
本人对该标签理解不深,这里是复制了穆乙的文章:如果有人进来看到这篇文章,请按此https://www.cnblogs.com/pigtail/archive/2013/03/15/2961631.ht ...
 - Github+hexo+next搭建教程
			
今天参考的是大神的教程,学了一个新东西,但是可能由于原教程中运用的npm包与我当前使用的npm包版本不同的原因,有出过多处运行错误,但都在此教程中解决了; 总结了下命令: npm install he ...
 - HDU P2089
			
题目大意为,统计区间内不含4和62的数字的个数: 老实说,看到这题我是抵触的..... 基本上是数位DP的板子,话说数位DP好像全是模板题吧: 预处理,有关的整区间的数字个数: 调用已有的区间,求解0 ...
 - AngularJS开发人员最常犯的10个错误
			
简介AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客户 ...
 - 移动目标在三维GIS中的实现方法
			
对于基于ArcGIS Runtime的应用程序,其实现方法比较简单,可以直接更新图形的Geometry属性,即可实现位置的移动: private void AddGraphics() { var gl ...
 - vue2 使用 element-ui
			
看了 http://element.eleme.io/#/zh-CN/component/installation 一些组件和样式够用了 , 试了下 element-ui ,配合到vue中 ...
 - PHPStorm/webstorm/PyCharm tips
			
phpstorm对于使用PHP开发web的人员来说,是一个非常不错的编辑开发IDE,以前用过sublime,但是相比于storm,sublime在浏览legacy代码,类代码编辑方面明显要逊色不少.同 ...