elasticsearch之hello(spring data整合)
1.书写pom.xml文件
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
</dependencies>
2.applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/elasticsearch
http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd "> <!-- 扫描DAO包 自动创建实现 -->
<elasticsearch:repositories base-package="com.baidu.dao" /> <!-- 扫描Service包 -->
<context:component-scan base-package="com.baidu.service" /> <!-- 配置elasticsearch 连接 -->
<elasticsearch:transport-client id="client" cluster-nodes="localhost:9300" /> <!-- spring data elasticsearch DAO 必须依赖 elasticsearchTemplate -->
<bean id="elasticsearchTemplate"
class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
<constructor-arg name="client" ref="client" />
</bean> </beans>

Demo01.java
package com.baidu.test01; import org.elasticsearch.client.Client;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.baidu.domain.Article;
import com.baidu.service.ArticleService; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class Demo01 { @Autowired
private ArticleService articleService; @Autowired
private Client client; // 基于原生API @Autowired
private ElasticsearchTemplate elasticsearchTemplate; @Test
public void createIndex() {
//创建索引
elasticsearchTemplate.createIndex(Article.class);
//创建映射
elasticsearchTemplate.putMapping(Article.class);
}
@Test //创建文档
public void createDoc() {
for (int i = 2; i < 20; i++) {
Article ac=new Article();
ac.setId(i);
ac.setTitle("testSave"+i);
ac.setContent("仅仅只是在测试test"+i);
//文档操作
articleService.save(ac);
}
}
@Test //查询文档
public void searchDoc() {
//文档操作
articleService.findAll();
} @Test //查询文档
public void searchDoc01() {
//文档操作
articleService.findById(1);
} @Test //查询文档
public void searchDoc02() {
//模糊查询
articleService.findByTitle("testsave");
} @Test //查询文档
public void searchDoc03() {
PageRequest pr=new PageRequest(0, 4,new Sort(Direction.DESC, "id"));
//分页查询 按照降序排序
articleService.findAll(pr);
}
}
ArticleService.java文件(接口)
package com.baidu.service;
import org.springframework.data.domain.PageRequest;
import com.baidu.domain.Article;
public interface ArticleService {
void save(Article ac);
void findAll();
void findById(Integer i);
void findAll(PageRequest pr);
void findByTitle(String string);
}
ArticleService实现类
package com.baidu.service.imp; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.WildcardQueryBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.SearchQuery;
import org.springframework.stereotype.Service; import com.baidu.dao.ArticleDao;
import com.baidu.domain.Article;
import com.baidu.service.ArticleService; @Service
public class ArticleServiceImp implements ArticleService{ @Autowired
private ArticleDao articleDao;
public void save(Article ac) {
articleDao.save(ac);
}
public void findAll() {
Iterable<Article> all = articleDao.findAll();
for (Article article : all) {
System.out.println(article);
}
}
public void findById(Integer i) {
Article article = articleDao.findById(i);
System.out.println(article); }
public void findAll(PageRequest pr) {
Page<Article> page = articleDao.findAll(pr);
System.out.println(page.getContent());
}
public void findByTitle(String string) {
//需要根据内容的分词进行查询
QueryBuilder query= new WildcardQueryBuilder("title", "*"+string+"*");
SearchQuery searchQuery = new NativeSearchQuery(query);
PageRequest pr=new PageRequest(0, 4,new Sort(Direction.DESC, "id"));
searchQuery.setPageable(pr);
Page<Article> page = articleDao.search(searchQuery);
System.out.println(page.getContent());
} }
ArticleDao.java
package com.baidu.dao;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import com.baidu.domain.Article;
public interface ArticleDao extends ElasticsearchRepository<Article, Integer> {
Article findById(Integer i);
}
elasticsearch之hello(spring data整合)的更多相关文章
- MongoDB和Java(6):Spring Data整合MongoDB副本集、分片集群
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- MongoDB和Java(5):Spring Data整合MongoDB(注解配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Spring Data 整合 ElasticSearch搜索服务器
一.基于 maven 导入坐标(pom.xml文件) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...
- Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式
前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...
- Elasticsearch学习(1) Spring boot整合Elasticsearch
本文的Spring Boot版本为1.5.9,Elasticsearch版本为2.4.4,话不多说,直接上代码. 一.启动Elasticsearch 在官网上下载Elasticsearch后,打开bi ...
- Elasticsearch学习(4) spring boot整合Elasticsearch的聚合操作
之前已将spring boot原生方式介绍了,接下将结介绍的是Elasticsearch聚合操作.聚合操作一般来说是解决一下复杂的业务,比如mysql中的求和和分组,由于博主踩的坑比较多,所以博客可能 ...
- Redis-07.Spring Data整合Jedis
Spring整合Jedis 1.单实例(想节约时间的请直接拖到下面跳过1.2部分) step1:毫无疑问,首先需要在pom.xml中配置Jedis依赖 <dependency> <g ...
- SprignBoot整合Spring Data Elasticsearch
一.原生java整合elasticsearch的API地址 https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/java ...
随机推荐
- git 在本地拉取远程分支的代码(并不做提交操作)
1. git fetch 获取远程的所有分支 2. 在执行 git checkout -b local-branch-name origin/remote-branch 就可以将远程分支remote ...
- python-web自动化-元素定位
# -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # ...
- python初接触
浑浑噩噩的过了3年多大学生涯,就借此开始下定决心好好的学好一门技术,为心中那个游戏梦而努力. 正式开课的第一天(也算不的吧,毕竟昨天老师也和我们讲了python课程的大纲内容).自我总结下今天的内容吧 ...
- [持续交付实践] pipeline使用:语法详解
一.引言 jenkins pipeline语法的发展如此之快用日新月异来形容也不为过,而目前国内对jenkins pipeline关注的人还非常少,相关的文章更是稀少,唯一看到w3c有篇相关的估计是直 ...
- kettle 无法正常启动问题
Java环境配置后,双击spoon.bat无法打开 修改spoon.bat里内存配置: if "%PENTAHO_DI_JAVA_OPTIONS%"=="" s ...
- 移动平台MOBA发热与帧率优化
MOBA项目的优化进入到了第二阶段,千元机,发热严重问题处理,及帧率进一步提升. 回顾之前的优化,当初我的 OPPO R9S不过8-10帧,后来经过了逻辑计算的一些优化后达到10-20帧. 再后来开启 ...
- c#mvc实现登录
本篇介绍MVC实现登录的方式,如下: 1.通过MVC Form 表单请求实现登录 2.通过AJAX GET 请求MVC Controller 实现登录 3.通过AJAX POST 请求MVC Cont ...
- SSM商城项目(七)
1. 学习计划 1.Solr服务搭建 2.Solrj使用测试 3.把数据库中的数据导入索引库 4.搜索功能的实现 2. Solr服务搭建 2.1. Solr的环境 Solr是java开发. 需 ...
- Linux Tomcat安装部署项目
一.上传Tomcat服务器
- Django项目vue前端依赖框架过大,工程打开太卡的问题
前景提要:利用vue开发项目,由于依赖框架太大,导致pyCharm内存不够,项目打开太慢.步骤一:修改pyCharm的占用内存大小,按照下图操作.1.在应用程序中找到pyCharm,点击"显 ...