elasticsearchTemplate that could not be found
***************************
APPLICATION FAILED TO START
***************************
Description:
Method mvcConversionService in org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration required a bean named 'elasticsearchTemplate' that could not be found.
Action:
Consider defining a bean named 'elasticsearchTemplate' in your configuration.
查找原因 (原来以为是'elasticsearch的版本问题,后面发现了项目的问题)

一般创建的maven 产生的

application.yml的配置文件
server:
port: 19006
spring:
application:
name: essearch-service
data:
elasticsearch:
cluster-name: elasticsearch
cluster-nodes: 127.0.0.1:9300
# local: false
repositories:
enabled: true
package com.leyou.es.pojo; import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
//import org.springframework.data.elasticsearch.annotations.Document;
//import org.springframework.data.elasticsearch.annotations.Field;
//import org.springframework.data.elasticsearch.annotations.FieldType; /**
* @author :cza
* @date :2020/5/12 12:21
* @description :
* @modyified By:
*/
@Data
@Document(indexName = "heima3",type = "item",shards = 1,replicas = 0)
public class Item {
@Id
@Field(type= FieldType.Integer)
private Integer id;
@Field(type= FieldType.Text,analyzer = "ik_smart")
private String title; //标题
@Field(type= FieldType.Keyword)
private String category; //分类 @Field(type= FieldType.Keyword)
private String brand; //品牌
@Field(type= FieldType.Double)
private Double price; //价格 public Item(Integer id, String title, String category, String brand, Double price, String images) {
this.id = id;
this.title = title;
this.category = category;
this.brand = brand;
this.price = price;
this.images = images;
} public Item() {
} @Field(type= FieldType.Keyword,index = false)
private String images; //图片地址
}
package com.leyou.es.repository; import com.leyou.es.pojo.Item;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import java.awt.print.Pageable;
import java.util.List; /**
* @author :cza
* @date :2020/5/13 1:59
* @description :
* @modyified By:
*/
public interface ItemRepository extends ElasticsearchRepository<Item,Integer> { // List<Item> findByPriceBetween(Double begin, Double end);
// List<Item> findBypNameOrPrice(String name, Integer price);
// List<Item> findByName(String name, Pageable page);
}
package com.leyou.es; import com.leyou.es.pojo.Item;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.test.context.junit4.SpringRunner; import java.util.List; /**
* @author :cza
* @date :2020/5/12 12:29
* @description :
* @modyified By:
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class EsTest { @Autowired
private ElasticsearchTemplate elasticsearchTemplate;
//@Autowired
//private ItemRepository itemRepository;
//@Autowired
//private ElasticsearchRestTemplate elasticsearchRestTemplate;
@Test
public void testCreateIndex(){
//创建索引库
elasticsearchTemplate.createIndex(Item.class);
//映射关系
elasticsearchTemplate.putMapping(Item.class);
/* //创建索引库
elasticsearchRestTemplate.createIndex(Item.class);
//映射关系
elasticsearchRestTemplate.putMapping(Item.class);*/
} // /**
// * 插上全部
// */
// @Test
// public void insertIndexAll(){
// List<Item> list=new ArrayList<>();
// list.add(new Item(Integer.valueOf("1"),"坚果手机","手机","锤子",2699.00,"http://www.baidu.com"));
// list.add(new Item(Integer.valueOf("2"),"华为Mate10手机","手机","华为",3699.00,"http://www.baidu.com"));
// list.add(new Item(Integer.valueOf("3"),"小米Mi10手机","手机","小米",3099.00,"http://www.baidu.com"));
// list.add(new Item(Integer.valueOf("3"),"小米Mi8手机","手机","小米",2399.00,"http://www.baidu.com"));
//
// itemRepository.saveAll(list);
// }
//
// /**
// * 查询所有
// */
// @Test
// public void testFind(){
// Iterable<Item> all = itemRepository.findAll();
// for (Item item :all){
// System.out.println("item= "+item);
// }
// }
//
// /**
// * 根据价格查询
// */
// @Test
// public void testFindByPrice(){
// Iterable<Item> all = itemRepository.findByPriceBetween(2000d,3500d);
// for (Item item :all){
// System.out.println("item= "+item);
// }
// }
// @Test
// public void search(){
// //构建查询条件
// NativeSearchQueryBuilder queryBuilder=new NativeSearchQueryBuilder();
// //结果过滤
// queryBuilder.withSourceFilter(new FetchSourceFilter(new String[]{"id","title","price"},null));
// //添加基本分词查询
// queryBuilder.withQuery(QueryBuilders.matchQuery("title","小米"));
// //排序
// queryBuilder.withSort(SortBuilders.fieldSort("price").order(SortOrder.DESC));
// //分页
// queryBuilder.withPageable( PageRequest.of(1,20));
// Page<Item> items = this.itemRepository.search(queryBuilder.build());
// long totalcount = items.getTotalElements();
// System.out.println("totalcount="+totalcount);
// for (Item item:items){
// System.out.println(item);
// }
// List<Item> list = items.getContent();
// for (Item item :list){
// System.out.println("item="+list);
// }
// } @Test
public void testAgg(){
NativeSearchQueryBuilder queryBuilder=new NativeSearchQueryBuilder();
String aggName="popularBrand";
queryBuilder.addAggregation(AggregationBuilders.terms(aggName).field("brand"));
//查询并返回聚合结果
AggregatedPage<Item> result = elasticsearchTemplate.queryForPage(queryBuilder.build(), Item.class);
//解析聚合
Aggregations aggs = result.getAggregations(); //获取指定名称的聚合
StringTerms terms = aggs.get(aggName);
List<StringTerms.Bucket> buckets = terms.getBuckets();
for (StringTerms.Bucket bucket:buckets){
System.out.println("bucket.getKeyAsString="+bucket.getKeyAsString());
System.out.println("bucket.getDocCount="+bucket.getDocCount());
}
}
}
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath></relativePath>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
<mapper.starter.version>2.0.3</mapper.starter.version>
</properties>
<dependencyManagement>
<dependencies>
<!--springcloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--通用Mapper启动器-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>${mapper.starter.version}</version>
</dependency>
<!--分页助手启动器-->
<dependency>
<groupId>com.github.pageHelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pageHelper.starter.version}</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!--FASTDFS客户端-->
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>${fastDFS.client.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<!-- <version>5.0.6.RELEASE</version>-->
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
es的版本下载
下载 elasticsearch 5.5.0 版本
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
elasticsearch-analysis-ik 5.5.0 版本
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.0/elasticsearch-analysis-ik-5.5.0.zip
查询elasticsearch-analysis-ik 版本,比如5.6.3
https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.6.3
下载地址:https://files.cnblogs.com/files/zhian/es-demotest.zip
elasticsearchTemplate that could not be found的更多相关文章
- Spring ElasticsearchTemplate 经纬度按距离排序
es实体,用 @GeoPointField 注解,值为:中间逗号隔开,如 29.477000,119.278536(经度, 维度) @Document(indexName = "v_inte ...
- ElasticSearch 工具类封装(基于ElasticsearchTemplate)
1.抽象接口定义 public abstract class SearchQueryEngine<T> { @Autowired protected ElasticsearchTempla ...
- ElasticSearchRepository和ElasticSearchTemplate的使用
Spring-data-elasticsearch是Spring提供的操作ElasticSearch的数据层,封装了大量的基础操作,通过它可以很方便的操作ElasticSearch的数据. 版本说明 ...
- elasticsearchTemplate操作es
ElasticsearchTemplate是spring对java api的封装 maven依赖: <dependency> <groupId>org.springframew ...
- springboot-elasticsearch项目启动报错:'elasticsearchTemplate' that could not be found
解决: 将elasticsearch的相关配置加入到application.yml配置文件中就可以解决
- elasticsearch使用操作部分
本片文章记录了elasticsearch概念.特点.集群.插件.API使用方法. 1.elasticsearch的概念及特点.概念:elasticsearch是一个基于lucene的搜索服务器.luc ...
- elasticsearch spring 集成
elasticsearch spring 集成 项目清单 elasticsearch服务下载包括其中插件和分词 http://download.csdn.net/detail/u0142011 ...
- Spring Data Elasticsearch
项目清单 elasticsearch服务下载包括其中插件和分词 http://download.csdn.net/detail/u014201191/8809619 项目源码 资源文件 ...
- Spring Boot + Elasticsearch
spring data elasticsearch elasticsearch 2.0.0.RELEASE 2.2.0 1.4.0.M1 1.7.3 1.3.0.RELEASE 1.5.2 1.2.0 ...
随机推荐
- netty系列之:netty中的核心解码器json
目录 简介 java中对json的支持 netty对json的解码 总结 简介 程序和程序之间的数据传输方式有很多,可以通过二进制协议来传输,比较流行的像是thrift协议或者google的proto ...
- Django安装+创建一个Django项目
安装 选用pycharm 在终端输入命令:pip install django 安装完成后创建项目 1.在你想创建项目的目录下输入下面的代码 2.django-admin startprojec ...
- 1.3 Linux和UNIX的关系及区别(详解版)
UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞 ...
- Docker系列教程05-Docker数据卷(Data Volume)学习
引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...
- Java学习笔记-基础语法Ⅲ
继承:子类使用extends来继承父类,子类可以有父类的内容,还可以有子类自己特有的内容 继承的好处: 提高了代码的复用性(多个类相同的成员可以放到同一个类中) 提高了代码的维护性(如果方法的代码需要 ...
- Web安全学习笔记 SQL注入中
Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...
- 接口测试使用Python装饰器
写接口case时,有时需要对cae做一些共性的操作,最典型的场景如:获取case执行时间.打印log等. 有没有一种办法来集中处理共性操作从而避免在每个case中都写相同的代码(如:每个case都需要 ...
- 56. Merge Intervals - LeetCode
Question 56. Merge Intervals Solution 题目大意: 一个坐标轴,给你n个范围,把重叠的范围合并,返回合并后的坐标对 思路: 先排序,再遍历判断下一个开始是否在上一个 ...
- python使用vosk进行中文语音识别
操作系统:Windows10 Python版本:3.9.2 vosk是一个离线开源语音识别工具,它可以识别16种语言,包括中文. 这里记录下使用vosk进行中文识别的过程,以便后续查阅. vosk地址 ...
- android系统中有哪些日志
日志目录 android系统中还有很多常用的日志目录.我们可以通过adb命令把这些日志信息提取出来. data/system/dropbox data/system/usagestats data/s ...