***************************
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的更多相关文章

  1. Spring ElasticsearchTemplate 经纬度按距离排序

    es实体,用 @GeoPointField 注解,值为:中间逗号隔开,如 29.477000,119.278536(经度, 维度) @Document(indexName = "v_inte ...

  2. ElasticSearch 工具类封装(基于ElasticsearchTemplate)

    1.抽象接口定义 public abstract class SearchQueryEngine<T> { @Autowired protected ElasticsearchTempla ...

  3. ElasticSearchRepository和ElasticSearchTemplate的使用

    Spring-data-elasticsearch是Spring提供的操作ElasticSearch的数据层,封装了大量的基础操作,通过它可以很方便的操作ElasticSearch的数据. 版本说明 ...

  4. elasticsearchTemplate操作es

    ElasticsearchTemplate是spring对java api的封装 maven依赖: <dependency> <groupId>org.springframew ...

  5. springboot-elasticsearch项目启动报错:'elasticsearchTemplate' that could not be found

    解决: 将elasticsearch的相关配置加入到application.yml配置文件中就可以解决

  6. elasticsearch使用操作部分

    本片文章记录了elasticsearch概念.特点.集群.插件.API使用方法. 1.elasticsearch的概念及特点.概念:elasticsearch是一个基于lucene的搜索服务器.luc ...

  7. elasticsearch spring 集成

    elasticsearch spring 集成 项目清单   elasticsearch服务下载包括其中插件和分词   http://download.csdn.net/detail/u0142011 ...

  8. Spring Data Elasticsearch

    项目清单   elasticsearch服务下载包括其中插件和分词   http://download.csdn.net/detail/u014201191/8809619   项目源码   资源文件 ...

  9. 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 ...

随机推荐

  1. lab_1 清华大学ucore bootload启动ucore os(预备基础知识+实验过程)

    实验1 :bootload启动ucore os 1.0实验内容: lab1中包含一个bootloader和一个OS.这个bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式 ...

  2. drf-Serializers

    What is serializers? serializers主要作用是将原生的Python数据类型(如 model querysets )转换为web中通用的JSON,XML或其他内容类型. DR ...

  3. 【mq】从零开始实现 mq-09-消费者拉取消息 pull message

    前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...

  4. 解构HE2E中的Kubernetes技术应用

    摘要:我们从Kubernetes技术应用的角度解构华为云DevCloud HE2E DevOps实践. 本文分享自华为云社区<解构HE2E中的Kubernetes技术应用>,作者: 敏捷小 ...

  5. 一探 Vue 数据响应式原理

    一探 Vue 数据响应式原理 本文写于 2020 年 8 月 5 日 相信在很多新人第一次使用 Vue 这种框架的时候,就会被其修改数据便自动更新视图的操作所震撼. Vue 的文档中也这么写道: Vu ...

  6. Java 17 新特性:switch的模式匹配(Preview)

    还记得Java 16中的instanceof增强吗? 通过下面这个例子再回忆一下: Map<String, Object> data = new HashMap<>(); da ...

  7. js--promise、async 和 await 相关知识总结

    前言 promise 是前端开发人员必须掌握的知识点,本文来总结一下相关学习笔记. 正文 1.什么是prommise,promise 解决了什么问题 a.promise 是什么 Promise 是承诺 ...

  8. django三板斧与request对象方法与ORM

    目录 django三板斧 HttpResponse() render() redirect() 网页获取静态文件样式 request对象方法 post请求问题 针对get请求和post请求执行不同代码 ...

  9. 向sqlserver 数据库插入emoji 表情包

    1.emoji 属于特殊字符 所以我们必须使用utf-8 的编码格式进行保存  不过好在sqlserver 默认支持utf-8 2.将需要存储emoji的字段必须设置为nvarchar 类型  因为v ...

  10. elemetnUI表格分别给列表每一个按钮加loading

    // 获取列表数据的时候--添加按钮loading this.list = this.list.map((item) => { this.$set(item, "dataLoading ...