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整合)的更多相关文章

  1. MongoDB和Java(6):Spring Data整合MongoDB副本集、分片集群

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

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

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

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

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

  4. Spring Data 整合 ElasticSearch搜索服务器

    一.基于 maven 导入坐标(pom.xml文件) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

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

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

  6. Elasticsearch学习(1) Spring boot整合Elasticsearch

    本文的Spring Boot版本为1.5.9,Elasticsearch版本为2.4.4,话不多说,直接上代码. 一.启动Elasticsearch 在官网上下载Elasticsearch后,打开bi ...

  7. Elasticsearch学习(4) spring boot整合Elasticsearch的聚合操作

    之前已将spring boot原生方式介绍了,接下将结介绍的是Elasticsearch聚合操作.聚合操作一般来说是解决一下复杂的业务,比如mysql中的求和和分组,由于博主踩的坑比较多,所以博客可能 ...

  8. Redis-07.Spring Data整合Jedis

    Spring整合Jedis 1.单实例(想节约时间的请直接拖到下面跳过1.2部分) step1:毫无疑问,首先需要在pom.xml中配置Jedis依赖 <dependency> <g ...

  9. SprignBoot整合Spring Data Elasticsearch

    一.原生java整合elasticsearch的API地址 https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/java ...

随机推荐

  1. 【产品设计】【转】APP界面设计规范编写指南(人人都是产品经理)

    转自 :http://www.woshipm.com/ucd/608557.html 作者:EID_UX_DESIGN,微信公众号:EID_center 原文地址:http://www.ui.cn/d ...

  2. 成为JavaGC专家—深入浅出Java垃圾回收机制

    对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢? 首先可以满足作为一名软件工程师的求知欲, 其次,深入了解GC如何工作可以帮你写出更好的Java应用. 这仅仅代表我个人的意见,但我坚信 ...

  3. 学习excel的使用技巧三快捷键和思路

    快捷键 CRTL+回车 是多行执行 思路 关于公式 在空白出 写= 即开始写公式 excel第一行 就是行标 比如 A1 就是excel 表格中第一个 比如来个乘法 =A1*12+b1*13 求和更简 ...

  4. saltstack的封装和内网使用

    0.客户端使用 linux:把linux的ragent文件夹拷贝到内网linux /opt目录下,运行初始化脚本 salt服务端:# @Master:"/opt/ragent/python/ ...

  5. 生活实遇记-Kindle好久没用,屏幕一直处于电池状态,怎么解决?

    2018-01-02 实遇记-Kindle好久没用,屏幕一直处于电池状态,怎么解决? 今天我翻腾出自己的kindle,好久没用了,屏幕一直是一个电池状态,充电头+线充了2个钟头,按电源键木有反应,也是 ...

  6. CSS: Grid homework redact.

    The web homework: Finished design: (I use six block with different color to show this homework and I ...

  7. Python入门:Anaconda和Pycharm的安装和配置

    Python入门:Anaconda和Pycharm的安装和配置  转自:https://www.cnblogs.com/yuxuefeng/articles/9235431.html 子曰:“工欲善其 ...

  8. faster rcnn源码阅读笔记1

    自己保存的源码阅读笔记哈 faster rcnn 的主要识别过程(粗略) (开始填坑了): 一张3通道,1600*1600图像输入中,经过特征提取网络,得到100*100*512的feature ma ...

  9. Java的学习05

    今天学习了,Java中的LinkedList类.这个类需要用到链表的知识,以前一直以为,只有c/c++有链表.今天才知道,原来其他语言.也有链表,而且还是双向链表. /** * 自定义一个链表 * @ ...

  10. 了解各种不同意义上的new

    问题1:请说明new operator 和 operator  new的差异? 1.new   operator : 一般我们写代码的时候,例如:String *p = new String(&quo ...