总结

java工作半年总结 本科毕业到北京工作了半年,写一篇总结,记录一下成长过程。 面试的时候,手头掌握的东西可太惨了,大学所有的编程活动都是用C++完成的,java的基础基本为零。虽然我在大三实习的时候用过ssm+jersey+swagger做过微信公众号后台,但是由于没有系统学过java(大学没有java课,震惊),用过之后也就基本忘了,到后来只能想起来一个@Service了 = =。 刚开始工作的时候,maven... 阅读详情

总结

我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch(Spring Data的子项目)为我们提供了非常便捷的检索功能支持。

ElasticSearch是一个分布式搜索服务,提供Restful API,底层基于Lucene(开源的搜索引擎软件工具包,我们需要自己写代码调用里面的api,而es对其做了封装。提供了restful api操作接口,通过发送请求的方式应用起来),采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了ElasticSearch作为其搜索服务。

Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:

一个分布式的实时文档存储,每个字段 可以被索引与搜索
一个分布式实时分析搜索引擎
能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
ElasticSearch官网地址:https://www.elastic.co/。
 

 

ES使用Java写的,启动默认会使用2G的堆内存空间。

 

ES 是面向文档的,意味着它存储整个对象或者文档。ES不仅存储文档,而且索引每个文档的内容可以被检索。在ES中,你对文档进行索引、检索、排序和过滤。而不是对行列数据。这是一种完全你不同的思考数据的方式。也是ES能支持复杂全文检索的原因。

 

一个对象放到ES中,最终会转成JSON格式进行存储。   JSON支持跨平台,轻量级。

 

索引--其实就存储的意思: 数据存储到ES的行为叫做索引(动词),但是索引在一个文档之前,需要确定将文档存储在哪里

在ES里面有多个索引(名词),每个索引包含多个类型,每个类型包含多个文档,每个文档有多个属性

 

做个类比吧:

 

 

和MySQL的类比关系

   ES集群相当于我们连接上MySQL数据库

   然后往哪个数据库查询东西(MySQL里面很多数据库) 对应索引

   数据库里面有很多找张表    对应表

   表里面有一行一行的记录   对应文档

   表里面的列   每一列都对应字段

 

 

一:存储数据

如果给tx的员存储数据,4步操作

      每个员工索引一个文档,包括该员工的所有信息

      每个文档都将是employee类型

      该类型位于tianxiao索引内 

      该索引保存在ES集群中

 

一个访问搞定~  PUT 请求+ JSON数据

           索引名字/类型名字/数据的特定标识(1号数据)


PUT /tianxaio/employee/1
{
"name" : "Jack",
"age" : "24",
"motto" : "996 是福分"
}

 

put两次版本字段进行叠加: 相当于update

 

 

注意:

put 可以新增和修改文档

 

二:检索数据

  GET请求 索引/类型/一号数据

 GET /tianxaio/employee/1 

 

注意搜索所有的员工:

 GET /tianxaio/employee/_search

 

按照条件去查找:

   GET /tianxaio/employee/_search?q=name:Jack

 

如果使用查询表达式:

请求体里面放入这一坨数据  

GET /tianxaio/employee/_search
{
"query" :{

"match" : {

"name" : "Jack"

}

}
}

语法就是: 查询 规则就是匹配name为Jack的数据   (注意对于POST man  这里虽然理论上是GET请求,但是这一坨数据是放在请求体里面的,GET是不合适的,所以就放入了POST请求体了)

 

JSON复杂,那么ES查询操作就可以更复杂了,JSON形式的查询表达式示相当重要的

GET /tianxaio/employee/_search
{
"query": {
"bool": {
"must":
{
"match": {
"name" : "Jack"
}
},
"filter": {
"range": {
"age": { "gt": 11 }
}
}

}
}

}

大于11岁的

 

 

全文检索:

  根据每一个员工的motto 字段来查 ,只要这个字段包换我们要检索的字段就会被检索到

  GET /tianxaio/employee/_search
  {
    "query": {
      "match": {
        "motto": "996"
      }
    }
    
  }
 

结果:

 

 做了一个like操作  996  和 福气 包含的都被查询出来了

 

 

如果是作为一个指定的完整的单词去查询呢?

 

   GET /tianxaio/employee/_search
  {
    "query": {
      "match_phrase": {
        "motto": "996"
      }
    }
    
  }
 

结果:

 

 

 

 

三:删除数据

 DELETE

   DELETE /tianxaio/employee/1

 

 

使用rest风格的api直接操作就可以了

 

Spring Boot 整合ES

 


  

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

 

Spring Boot默认用Spring Data 项目下的ElasticSearch模块进行操作

 

 SpringBoot 默认支持两种技术和ES交互

1、    Jest  (默认不生效的)

2、   SpringData ElasticSearch   :

            帮助提供了一个客户端   

            配置了ElasticSearchTemplate. Spring Boot 整合其他组件一如既往的Template套路

             编写ElasticsearchRepository的子接口来操作es (类似JPA的编程方式)

       

yml的配置参考:

yml:

spring.data.elasticsearch.cluster-name=myes
spring.data.elasticsearch.cluster-nodes=192.168.91.7:9300

 

Bean:

//一定要是有get方法啊啊啊 我玩儿时候 没有get方法 竟然在es中可以查到数据 但是差不多具体的信息内容!!没有属性值!!
@Document(indexName = "test_es",type = "book")  //book作为文档存在那个索引 哪个类下面
public class MyBook {
    private Integer id;
    private String bookName;
    private String author;

    public MyBook() {
    }

    public MyBook(Integer id, String bookName, String author) {
        this.id = id;
        this.bookName = bookName;
        this.author = author;
    }

    public Integer getId() {
        return id;
    }

    public String getBookName() {
        return bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return super.toString();
    }
}

 

 Dao

public interface BookRepository extends ElasticsearchRepository<MyBook, Integer> {  //book的主鍵是Interger的
   
}

 

 启动类:

@SpringBootApplication
public class ElasticsearchApplication {

    public static void main(String[] args) {
        SpringApplication.run(ElasticsearchApplication.class, args);
    }

}

 

 测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class ElasticsearchApplicationTests {

    @Resource
    BookRepository bookRepository;

    @Test
    public void test01(){
        MyBook myBook = new MyBook();
        myBook.setId(1);
        myBook.setAuthor("toov5");
        myBook.setBookName("新的测试");
        System.out.println(myBook.getBookName());
        bookRepository.index(myBook);
    }

    @Test
    public void contextLoads() {
    }

}

查询:

  GET /test_es/book/1

结果:

 

 

也可以自定义方法!

 对于基本的增删改查 ElasticsearchRepository<MyBook, Integer> 都包含了

 

CTRL + F12  选中菜单栏 可以查看原先自带的方法

 

 

 我们可以自定义其他的使用方法!

 Dao:

public interface BookRepository extends ElasticsearchRepository<MyBook, Integer> {  //book的主鍵是Interger的
    public List<MyBook> findMyBookByBookNameLike(String bookName); //by后面的BookName与bean对应哦
}

 

测试:

 @Test
    public void test01(){
        List<MyBook> MyBook = bookRepository.findMyBookByBookNameLike("编程");
        MyBook.forEach(
                b->{
                    System.out.println(b.getBookName());
                }
        );

    }

结果:

 

 

 查询的命名方法,可以详情查看Spring Data官方文档!

https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html/

 

 

大家可以点进去看看

 

posted @ 2019-05-02 22:25 toov5 阅读(...) 评论(...) 编辑 收藏

Sigrity Power Tree如何进行直流压降仿真分析操作指导 Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。 阅读详情

相关推荐

基于Dify1.9知识库流水线模板的思考——图像和表格数据处理

本文探讨了Dify1.9知识库流水线中LLM节点对文档图像/表格增强处理的优化方案。针对当前仅在内容后追加说明的简单做法,提出了结构化标注的改进方法:通过唯一ID和注释块标记图像/表格及其描述,确保内容可精准对齐。文章详细阐述了该方案的解析处理流程、数据结构化表示方法,以及在RAG检索和文档还原中的具体应用。关键经验包括:必须结构化标注非文本内容、LLM增强的必要性、语义向量化处理等。该方案解决了原始方法在内容重排、相似元素区分和检索精度等方面的问题。

roseey的专栏 1436

2022年最后1个季度了,4年高级Java程序员的年终总结,送给还在迷茫的你

你工作几年了,你愿意一直和新入行的新手一样就是个简单的程序员吗?你愿意一直写代码,而不关心其他吗?一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?程序员不是敲代码的机器。第一年太多东西不懂,你可以一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;但是第二年,你还是这样吗?不可能的,一年的经验你完全可以入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码?这是高级程序员的要求!什么是高级程序员?

Java_chain的博客 925

【AIGC】人工智能训练师(高级)考试题库-橙点同学

例如,在嘈杂的环境中进行声音转文字,即使是优秀的模型也可能会出现一些错误,但这并不意味着该模型本身质量差,在其他较为理想的环境下,它可能会有很好的表现。例如,在一些语音应用和系统中,会使用SSML来实现对语音合成的精细控制,如调整语速、语调、音量等,而这些应用和系统的开发往往会遵循W3C的相关标准和框架,其中就包括SSML这一语音合成标记语言。例如,在语音识别等场景中,像“去火车站怎么走”这样的语音指令,没有其他嘈杂的背景声音或模糊不清的表述,就属于无噪音的数据,有利于系统准确地进行处理和分析。

RisunJan的博客 9921

2016年总结-JAVA程序员

技术积累、工作心得、学习方向与职业规划、关于生活

小宝鸽 1万+

Windows报错“The system cannot find the file specified“的PATH环境变量解决方案

摘要: Windows系统中出现"The system cannot find the file specified"错误通常因PATH环境变量配置问题导致。本文提供解决方案:1)检查并修正PATH变量(通过命令行或图形界面添加缺失路径);2)确认程序安装路径及拼写无误;3)恢复误改的系统变量。示例演示了Python路径配置及无效路径清理方法,建议谨慎修改变量、使用绝对路径并定期检查。附参考表格详述操作步骤,帮助用户高效解决问题并优化系统环境。

shejizuopin的博客 3517

R语言孟德尔随机化环境搭建:手把手教你搞定gwasvcf、gwasglue等包的安装报错(附本地安装包)

本文详细介绍了R语言中孟德尔随机化环境搭建的全流程,重点解决gwasvcf、gwasglue等包的安装报错问题。从依赖关系解析到GitHub访问配置,再到离线安装方案,手把手教你搭建完整的分析环境,特别适合生物信息学新手快速上手。

weixin_29093017的博客 215

总结 | 2018 年终总结

最近罗胖的「时间的朋友」跨年演讲刷遍了票圈,20 年的承诺,这是第四次,也是倒数第十七次演讲,而我却是第一次听,实则惭愧。刚刚算是把四个小时的演讲完全听下来,学到了小趋势、事情真相、非共识、百年人生、人的逻辑和长期主义等关键词,里边涉及到很多颠覆个人认知的例子,建议没看过的朋友抽时间静下来感受一下。 整个演讲的核心思想即是在告诉我们,世界已经由「大河模型」变成了「多米洛骨牌模型」,2018 年开...

Java名企面试吧 2051

ESXI 8.0.3 ubuntu 24.04 直通显卡P40

手把手,一步步教你直通GPU,ESXI 8.0.3 ubuntu 24.04 直通显卡P40

qq_36433118的博客 4683

2018第一季度工作总结-遇到的困难和解决

遇到的困难和解决办法 1. 两个组件之间数据同步 描述:篇章加工和整书加工都是对篇章的处理,区别是角度不同,一个是从篇章的角度,一个是从整书的角度 原来做法:两个组件的数据互相独立,自己操作自己的,自己管理自己的定时器 问题:每当其中一个tab对篇章进行过操作,篇章的状态就会发生变化,在被操作的这个tab页里面,是没有问题的,可以定时发请求,更新数据;但是要保证两个页面数据同步就难了 解...

baizaozao的博客 4706

开源Harness项目DeerFlow 2.0,让智能体几乎能完成任何复杂任务

从提示工程到上下文工程,再到如今的 Harness,这条演进路径的本质是从“教模型如何理解人类”迈向“为模型构建一个可执行、可信赖、可长期运转的数字世界”。 当越来越多像 DeerFlow 2.0 这样的 Super Agent Harness 走向普及,AI 将真正进化为能理解、会规划、可执行、敢交付、长期负责的成熟生产力形态。

技术引领业务创新 519

基于YOLOv11的农作物病虫害检测系统设计与实现

我们使用公开的IP102病虫害数据集作为基础,该数据集包含102种病虫害类别,覆盖水稻、小麦、玉米等多种主要农作物。图像数量:75,222张类别数:102图像分辨率:从640×480到4000×3000不等标注格式:PASCAL VOC格式此外,我们还收集了部分田间实际拍摄的图像以增强模型泛化能力。

YOLO 595

Java个人总结系列(长)

JDK(Java Developer’s Kit):JRE(Java Runtime Environment)+开发工具,JRE包含JVM 关键字用来定义类,有public修饰时,源文件名必须和类名保持一致; 关键字字母都是小写; 类名通常单词组成,首字母大写,多个单词,每个单词首字母都大写 标识符:自定义的一些名称,eg:类名,变量名 26个英文字母大小写 0~9 _ $组成,数字不可以开头,不...

weixin_44454733的博客 531

PCL 使用RANSAC拟合平面【2026最新版】

RANSAC拟合平面算法原理和实现流程详解以及最大迭代次数和内点期望概率的设置方法。最后再对拟合后的平面法向量与向量(1,1,1)进行定向。博客长期更新,最近一次更新时间为:2026年4月24日。

点云侠的博客 42万+

一位程序员的十年工作总结,值得每位互联网人看看

微信公众号:javafirst展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告。走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经走过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户...

javafirst 2024

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深入浅出 spring-data-elasticsearch - 基本案例详解(三

『  风云说:能分享自己职位的知识的领导是个好领导。 』运行环境:JDK 7 或 8,Maven 3.0+技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2本文提纲一、spring-data-elasticsearch-crud 的工程介绍二、运行 spring-data-elasticsearch-cr...

weixin_34113237的博客 243

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

一个月的java工作总结

一个月的java开发工作结束了,开始第二个月的奋斗!

Take_me_away的博客 8580

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Spring Boot 2.0 M7 整合 ES 5 、Kibana 和 X-pack

本章内容 ES 及 x-pack 下载安装 Kibana 及 x-pack 下载安装 Spring Boot 整合 ES Spring Boot 操作 ES 1. ES 及 x-pack 下载安装 spring-data-elasticsearch 之 ElasticSearch 架构初探,详细看下我另外一篇文章《深入浅出 sp...

weixin_34177064的博客 197

2018年一季度总结

在惶恐中艰难的度过一季度已完成的工作:1月,独立完成手机端网站的开发工作。2月,过年。3月,见识了什么叫套路多。什么叫费力不讨好。更见识了所谓的人性。祝你好运。反思:         你要知道什么是自己想要的,知道什么是不可逆转的,知道用什么方式实现梦想,知道用什么心情面对苦难,人就在转瞬间感悟,进退得失不离不弃也就都有了答案。我不知道命运会把我带到何方,但是我一直会用善良维护左右。       ...

liuyu2783的博客 1204

java后端程序员1年工作经验总结

   java后端1年经验和技术总结(1) 1.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。   经过一年意识到以前也有很多认识误区,比如:   偏爱收集,经常收集各种资料视频塞满一个个硬盘,然...

weixin_30784501的博客 1万+

弹性搜索(elasticsearch)最新入门攻略

elassticsearch能做什么elasticsearch是一个专用的站内全文搜索引擎,基于开源的lucense实现,本身也是开源的产品,允许进行修改和再发布。elasticsearch采用lucense作为它的索引和检索核心,并且,提供了restful api进行服务管理和数据检索,部署和使用都十分便捷。更好的是,elasticsearch原生的支持集群化和分布式,能够很好的适应当前DT的潮流

BuquTianya的专栏 9046

Elasticsearch6.4.3安装

Elasticsearch6.4.3安装 Linux内存一定要1g以上! 首先要有jdk环境 要求1.8版本以上 elasticsearch是Java写的 将上传的 elasticSearch安装包解压 cd /home/elasticsearch/elasticsearch-6.4.3/config 1、 修改elasticsearch.yml network.hos...

art_code的博客 2090

ELK分布式日志收集搭建和使用

ELK分布式日志收集搭建和使用 大型系统分布式日志采集系统ELK 全框架 SpringBootSecurity 1、传统系统日志收集的问题 2、Logstash操作工作原理 3、分布式日志收集ELK原理 4、Elasticsearch+Logstash+Kiabana整合 5、Logstash将数据推送到ES 6、Kibana图形界面展示ES日志信息 搭建环境虚拟机要求:2G以上内存 ...

art_code的博客 1169

Elasticsearch6.4.3文档的映射

Elasticsearch6.4.3文档的映射 已经把ElasticSearch的核心概念和关系数据库做了一个对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等。 文档映射就是给文档中的字段指定字段类型、分词器。...

art_code的博客 783

SpringBoot2.0之整合ElasticSearch

SpringBoot2.0之整合ElasticSearch 就类比数据库到时候去实现 服务器端配置 集群名字 与yml名字一致 pom: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat...

art_code的博客 743

Elasticsearch6.0简介入门介绍

Elasticsearch6.0简介入门介绍 Elasticsearch简单介绍 Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库(存放的JSON格式的),其中每个字段均是被索引的数据且可被搜索(京东的搜索数据商品 细节 相关都可以被搜索到),它能够扩展至数以百计的服务器存...

art_code的博客 378

使用kibana进行简单的CRUD和版本控制

使用kibana进行简单的CRUD和版本控制 使用: ##创建文档之前先创建索引 PUT /toov5 ##查询索引 GET /toov5 ##创建文档 /索引/类型/id PUT /toov5/user/1 { "name":"Jack", "age":66, "sex":0 } ##删除索引 DELETE /toov5 GET /toov5/user/1 ...

art_code的博客 280
上一篇: Spring Boot与数据
下一篇: 注解的使用
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值