es项目实战

1springboot简单实用

--依赖

<!--es的依赖-->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
    </dependency>

--yml的配置

spring:
  data:
    elasticsearch:
      cluster-name: elasticsearch
      cluster-nodes: 127.0.0.1:9300 #java的客户端要用9300 服务器地址 配置es的地址

--需要创建一个文档映射

/**
 * 文档映射:
 *
 * index  type
 */
@Document(indexName = "xxx",type = "emp")
public class Employee {

@Id
    private Long id;

@Field(type = FieldType.Keyword)
    private String name;

// intro使用text类型进行映射;analyzer:索引创建时使用的分词器
    //searchAnalyzer:搜索分词器:搜索该字段的值时,传入的查询内容的分词器
    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
    private String intro;

private Integer  age;

--启动类

@SpringBootApplication
public class EsApplication {
     public static void main(String[] args) {
         SpringApplication.run(EsApplication.class);
     }
}

--测试

--首先进行环境的初始化

@RunWith(SpringRunner.class)
@SpringBootTest(classes = EsApplication.class)
public class EsTest {
    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;
    @Test
    public void testInit()throws Exception{
        //创建索引  做映射
        elasticsearchTemplate.createIndex(Employee.class);
        //做映射
        elasticsearchTemplate.putMapping(Employee.class);
    }
}

  --crud的操作

@Autowired

private ElasticsearchTemplate elasticsearchTemplate;

@Autowired

private EsRepository esRepository;

@Test

public void testInit() throws Exception {

//创建索引  做映射

elasticsearchTemplate.createIndex(Employee.class);

//做映射

elasticsearchTemplate.putMapping(Employee.class);

}

@Test

public void testAdd() throws Exception {

esRepository.save(new Employee(1L, "111", "I 1", 919));

}等等

2.es的项目实战

 --Es的服务单独封装为一个服务--给内部调用的:feign

--依赖

<!--es的依赖-->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-elasticsearch</artifactId>
</dependency>

--定义接口

@FeignClient(value = "xxx-PRIVODER",fallbackFactory = ProductEsClientFactory.class) //表示对哪一个服务进行处理
@RequestMapping("/xxx/es")
public interface ProductEsClient {
    //添加一个
    @RequestMapping(value = "/productdoc", method = RequestMethod.POST)
    AjaxResult addOne(@RequestBody  ProductDoc productDoc);

//批量添加
    @RequestMapping(value = "/productdocs", method = RequestMethod.POST)
    AjaxResult addBatch(@RequestBody List<ProductDoc> productDocList);

//删除一个
    @RequestMapping(value = "/productdoc/{id}", method = RequestMethod.DELETE)
    AjaxResult deleteOne(@PathVariable("id") Long id );

//批量删除
    @RequestMapping(value = "/productdocs", method = RequestMethod.DELETE)
    AjaxResult deleteBatch(@RequestBody List<Long> ids );

//查询一个
    @RequestMapping(value = "/productdoc/{id}", method = RequestMethod.GET)
    AjaxResult findOne(@PathVariable("id") Long id  );

}

--配置yml文件

xxx-service:增加配置文件:

spring:
  application:
    name: xxx-PRIVODER
  data:
    elasticsearch:
      cluster-name: elasticsearch
      cluster-nodes: 127.0.0.1:9300

--定义Repository接口

public interface ProductRepository extends ElasticsearchRepository<ProductDoc,Long>{
}

--定义service/controller-->按照ProductEsClient来写

--最后在消费者层写自己的业务逻辑。。。。。。

原文地址:https://www.cnblogs.com/wgyi140724-/p/10747851.html

时间: 2024-10-10 15:42:53

es项目实战的相关文章

最新短视频网站实战教程 node.js+ES+Koa2基础到精通项目实战课程

下载地址:百度网盘下载 node.js+ES+Koa2项目实战课,课程目录很多,只展示了主要章节课程目录第1章 2018 年的编程姿势1-0 课前必看.mp41-1 koa2导学.mp41-2 安装跟进最新 node.js 版本.mp41-3 毫不犹豫的使用promise.mp41-4 使用babel 编译es7 async function.mp4 第2章 必会 ES6-7 语法特性与规范2-0 课前必读.mp42-1 生成器函数.mp42-2 co 库执行 promise 和 generat

iOS开发——使用技术OC篇&amp;项目实战总结之开发技巧

项目实战总结之开发技巧 本文收集了25个关于可以提升程序性能的提示和技巧 1.使用ARC进行内存管理 2.在适当的情况下使用reuseIdentifier 3.尽可能将View设置为不透明(Opaque) 4.避免臃肿的XIBs 5.不要阻塞主线程 6.让图片的大小跟UIImageView一样 7.选择正确的集合 8.使用GZIP压缩 9.重用和延迟加载View 10.缓存.缓存.缓存 11.考虑绘制 12.处理内存警告 13.重用花销很大的对象 14.使用Sprite Sheets 15.避免

Elasticsearch.net项目实战

elasticsearch.net项目实战 @智客幸达 目录 Elasticsearch+kibana 环境搭建 windows 10环境配置 安装Elasticsearch head安装(非必需) 安装kibana DSL的基本使用 增加 修改 查询 删除 Elasticsearch .Net Low level client基本使用 项目实战 总结 参考 ? ???Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被

SpringBoot电商项目实战 — ElasticSearch接入实现

如今在一些中大型网站中,搜索引擎已是必不可少的内容了.首先我们看看搜索引擎到底是什么呢?搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术.搜索引擎依托于多种技术,如网络爬虫技术.检索排序技术.网页处理技术.大数据处理技术.自然语言处理技术等,为信息检索用户提供快速.高相关性的信息服务.搜索引擎技术的核心模块一般包括爬虫.索引.检索和排序等,同时可添加其他一系列辅助模块,以为用户创造更好的网络使用环境. image 基于Java的搜索引擎框架,目前市

Spring Boot 项目实战(一)Maven 多模块项目搭建

Maven父项目 以SpringBoot项目为例https://blog.csdn.net/weixin_30606669/article/details/99478544 Maven 多模块父子工程 (含Spring Boot示例)https://www.cnblogs.com/meitanzai/p/10945085.html https://www.cnblogs.com/orzlin/p/10330163.html 一.前言 最近公司项目准备开始重构,框架选定为 Spring Boot

海量数据MySQL项目实战

你好,我是你的数据库老师周彦伟,欢迎来到第 10 课时“MySQL 亿级数据库项目实战”,这是本系列课程的最后一课时,本课时的主要内容包含 MySQL 典型数据库架构介绍.MySQL 主流数据库架构对比等理论性知识,然后从“订单.用户”两个项目实战,抛砖引玉,介绍亿级互联网业务数据库项目如何设计. MySQL 典型数据库架构 数据库架构 我们想要更好地规划和设计 MySQL 数据库架构,首先需要了解典型的数据库架构,它通常由三部分组成: 数据库[原生]架构 高可用组件 中间件 然而,数据库架构又

angularJs项目实战!01:模块划分和目录组织

近日来我有幸主导了一个典型的web app开发.该项目从产品层次来说是个典型的CRUD应用,故而我毫不犹豫地采用了grunt + boilerplate + angularjs + bootstrap + D3 + requirejs 的架构来实现它.angularjs早在去年6月份我就有所接触,将它应用在实验室项目的个别页面中,11月份在新浪的时候也将其推荐给了所在云事业部项目组.项目组老大程辉等人都是很有技术敏感性的人,大胆地采纳了我的建议,将之应用于原本使用dojo开发的项目前端模块上.然

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计 3 Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL 4 Asp.Net Core 项目实战之权限管理系统(4) 依赖注入.仓储.服务的多项目分层实现 5 Asp.Net Core 项目实

【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合

[ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整理出一些比较好的教程,望君好好珍惜,资源不易,且保持,且珍惜直接上资源截图: 下载地址[回复可见]:http://www.fu83.cn/thread-282-1-1.html 感觉文章写的好,一定要回复 推荐哦!!!