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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/data/elasticsearchhttp://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 {@Autowiredprivate ArticleService articleService;@Autowiredprivate Client client; // 基于原生API@Autowiredprivate 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{@Autowiredprivate 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);
}

  

转载于:https://www.cnblogs.com/fjkgrbk/p/elasticsearch_springdata.html

elasticsearch之hello(spring data整合)相关推荐

  1. Elasticsearch实战篇——Spring Boot整合ElasticSearch

    2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...

  2. ElasticSearch实战篇 - Spring Boot 整合 ElasticSearch

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:冯文议 链接:segmentfault.com/a/1190000018625101 当前Spring Boot很是流行,包括我自己, ...

  3. MongoDB和Java(4):Spring Data整合MongoDB(XML配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  4. MongoDB和Java(5):Spring Data整合MongoDB(注解配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  5. spring data整合elasticsearch的applicationContext.xml文件模板

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式

    前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...

  7. 【笔记】Spring - Spring Data 整合:SpringBoot、Redis

    相关 [笔记]Spring - Spring Data JPA - https://lawsssscat.blog.csdn.net/article/details/103466076 资料 hm s ...

  8. spring boot spring data 整合 redis redis keys * 出现 \xac\xed\x00\x05t\x00) 编码异常

    spring boot 集成使用spring data时key出现 \xac\xed\x00\x05t\x00) 背景 最近在研究redis,在跑eladmin这个项目的时候,发现存储验证码的时候,把 ...

  9. Lucene 和 Kibana、ElasticSeach、Spring Data ElasticSearch

    什么是全文检索 数据分类 生活中的数据总体分为两种:结构化数据和非结构化数据. 结构化数据 - 行数据,可以用二维表结构来逻辑表达实现的数据:指具有固定格式或有限长度的数据,如数据库,元数据等. 非结 ...

最新文章

  1. php和js中,utf-8编码转成base64编码
  2. 在python中使用Ansible实现Devops的相关总结
  3. Nginx安装成Windows服务
  4. 最长非下降子序列(O(nlogn))(offer收割)
  5. 上一页下一页_多页PDF文件也能很快合为一页PDF文件?这个小技巧可以办到
  6. ×××与字符串的相互转换
  7. java自学难点_分享在达内教育培训Java的感受
  8. Yii2框架之旅(六)
  9. 最新IOS审核被拒原因TOP10 | 附带解决方法
  10. 养老院管理系统如何开发详解
  11. Oracle执行计划Explain Plan 如何使用
  12. 10个常见的python面试问题
  13. matlab图像取样和量化,一文看懂数字图像的取样和量化
  14. 常用相机投影及畸变模型(针孔|广角|鱼眼)
  15. 整理 kanban 的 DoR 和 DoD
  16. Cow Hopscotch G
  17. CAN 网络通信矩阵
  18. 2023年西安交通大学管理学院MPAcc提前批面试网报通知
  19. 用IP地址签发SSL证书
  20. 旧手机先别扔,余承东:留着升级一下鸿蒙

热门文章

  1. SAP WM MIGO移动类型311转库过账后WM层面产生了Posting Change Notice?
  2. 医学与人工智能交叉融合,打开眼科理疗新窗
  3. 疫情过后,对医疗AI行业带来的机遇
  4. 机器学习如何做好分布外异常检测?谷歌这篇 NeurIPS 2019 论文提出了方法
  5. 「每周CV论文推荐」 初学深度学习人脸关键点检测必读文章
  6. 刷手识别:确认过“掌静脉”找到对的人
  7. AI 落地,数据安全绕不开的 4 大问题
  8. 增长放缓,工业机器人产业经历“倒春寒”?
  9. 2019年25大人工智能趋势!一文看到未来
  10. 干货|一文看懂美国共享出行3大领域8大头部玩家