***************************
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. C#/VB.NET 合并PDF页面

    本文以C#及vb.net代码为例介绍如何来实现合并PDF页面内容.本文中的合并并非将两个文档简单合并为一个文档,而是将多个页面内容合并到一个页面,目的是减少页面上的空白区域,使页面布局更为紧凑.合理. ...

  2. MySQL性能优化 - 别再只会说加索引了

    MySQL性能优化 MySQL性能优化我们可以从以下四个维度考虑:硬件升级.系统配置.表结构设计.SQL语句和索引. 从成本上来说:硬件升级>系统配置>表结构设计>SQL语句及索引, ...

  3. 盘点提高国内访问 Github 的速度的 9 种方案

    开源Linux 长按二维码加关注~ 上一篇:一行代码如何隐藏Linux进程? 来源:https://urlify.cn/IFzQRb GitHub 镜像访问 GitHub文件加速 Github 加速下 ...

  4. Linux-I/O模型详解

    I/O介绍 I/O通常有内存IO.网络I/O.磁盘I/O等,但我们通常说的是网络I/O以及磁盘I/O.网络I/O:本质是socket读取 每次I/O请求,都会有两个阶段组成: 第一步:等待数据,即数据 ...

  5. html单页面通过cdn引入element-ui组件样式不显示问题

    html单页面通过cdn引入element-ui组件样式不显示问题 必须先引入vue,再通过cdn引入element,否则element-ui组件与样式无效. <!DOCTYPE html> ...

  6. UNIAPP实现PDA扫码

    目前我接触到了两种方法,以扫码pda安卓采集器(可以直接理解为手机上有个激光扫码)的设置划分. 1.扫描设置 --> 键盘方式输出(键盘类型:物理键盘),注意设置要看具体的型号: 2.扫码设置 ...

  7. 2021春季学期华清大学EE数算OJ3:岩石的重量

    原题目如下: 看起来,这不过是我们在<程序设计基础>里面接触过的简单动态规划问题(什么,你不知道什么叫动态规划? 什么是动态规划? 百度百科对"动态规划"一词定义如下: ...

  8. DevOps之敏捷开发

    初步了解一下敏捷开发及其流程 1 为什么要敏捷开发? 敏捷开发描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成. 1.1 背景与动机 当需求的不明确性和工程实现的 ...

  9. 49. Group Anagrams - LeetCode

    Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List&l ...

  10. 好客租房14-在jsx中使用javascript表达式的注意点

    注意点 单大括号中可以使用任意的表达式 jsx自身也是js表达式 注意:js中的对是一个例外 写在style样式中 //导入react     import React from "reac ...