您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

springboot集成elasticsearch

时间:2022-05-30 13:49:07  来源:  作者:小鱼科技3

介绍

Spring boot整合elastic search 7.9.1实现全文检索。主要包含以下特性:

  1. 全文检索的实现主要包括构建索引、高级搜索、聚集统计、数据建模四个模块;
  2. 使用 elasticsearch-rest-high-level-client 来操作elasticsearch,构建索引时,根据实际情况考虑哪些字段需要分词,哪些不需要分词,这会影响搜索结果。使用IK分词器虽然能解决一些中文分词的问题,但是由于分词的粒度不够细,导致很多词语可能搜不到。例如ik分词器在构建索引“三国无双”时,会把“三国”“无双”存起来建索引,但是搜索“国无”时,搜不出来,因此,我们采用把文本拆分到最细粒度来进行分词,从而最大限度地搜索到相关结果。详情参考:如何手动控制分词粒度提高搜索的准确性
  3. 高级搜索实现了以下几种:多字段搜索,指定多个字段进行搜索:query_string,支持高亮显示经纬度搜索:distanceQuery范围过滤,对搜索结果进一步按照范围进行条件过滤:rangeQuery
  4. 搜索结果的展示提供了普通分页和滚动分页两种实现。普通分页只适合数据量较小的场景,在数据量非常大的情况下,start+size普通分页会把全部记录加载到内存中,这样做不但运行速度特别慢,而且容易让es出现内存不足而挂掉。滚动分页需要得到一个scrollid,以后每次使用scrollid去获取下一页的内容,缺点是不能跳页。
  5. 聚集统计包含词条聚集、日期直方图聚集、范围聚集,并使用chart.js进行可视化
  6. 数据建模部分实现了嵌套对象的使用,查询时无需join性能较好,但是在建索引时就要把关联数据join好嵌套进去。
  7. swagger入口:http://localhost:8080/swagger-ui.html
  8. 新增数据库数据导入es的工具,编程实现比logstash灵活。使用请切换分支到master。db-import-elastic_search
  9. 通用的多条件查询结构模板是布尔查询,其中must部分放入带分词的搜索例如match、querystring等;filter部分放入过滤条件例如term、range等查询。因为filter部分利用缓存、跳过相关度打分提高性能:
// 通用查询结构模板
{
  "query": { 
    "bool": { 
      "must": [
        { "match": { "title":   "Search"        }},
        { "match": { "content": "Elasticsearch" }}
      ],
      "filter": [ 
        { "term":  { "status": "published" }},
        { "range": { "publish_date": { "gte": "2015-01-01" }}}
      ]
    }
  }
}

 

springboot集成elasticsearch

构建索引


springboot集成elasticsearch

搜狗日志列表


springboot集成elasticsearch

经纬度搜索


springboot集成elasticsearch

数据统计分析


springboot集成elasticsearch

各国家城市列表


springboot集成elasticsearch

has parent搜索


springboot集成elasticsearch

has child搜索

源代码地址:Spring-elastic_search: Spring boot整合Elasticsearch实现全文检索和大数据分析



Tags:elasticsearch   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Elasticsearch 性能优化详解
硬件配置优化升级硬件设备配置一直都是提高服务能力最快速有效的手段,在系统层面能够影响应用性能的一般包括三个因素:CPU、内存和 IO,可以从这三方面进行 ES 的性能优化工作。...【详细内容】
2024-03-07  Search: elasticsearch  点击:(29)  评论:(0)  加入收藏
ElasticSearch 的概念解析与使用方式
ElasticSearch(后续简称 ES)在企业中的使用可以说是非常广泛了,那么 ES 到底是什么呢?我们学习 ES 能做到哪些事情呢?接下来我将用几篇文章详细聊一聊 ES。ES 是一款高性能的分布...【详细内容】
2023-12-29  Search: elasticsearch  点击:(123)  评论:(0)  加入收藏
一口气看完43个关于 ElasticSearch 的实操建议
一、前言本文分享了在工作中关于 ElasticSearch 的一些使用建议。和其他更偏向手册化更注重结论的文章不同,本文将一定程度上阐述部分建议背后的原理及使用姿势参考,避免流于...【详细内容】
2023-12-28  Search: elasticsearch  点击:(98)  评论:(0)  加入收藏
一口气看完 43 个关于 ElasticSearch 的使用建议
一、前言本文分享了在工作中关于 ElasticSearch 的一些使用建议。和其他更偏向手册化更注重结论的文章不同,本文将一定程度上阐述部分建议背后的原理及使用姿势参考,避免流于...【详细内容】
2023-12-19  Search: elasticsearch  点击:(191)  评论:(0)  加入收藏
Elasticsearch与文件描述符的恩恩怨怨
提到Elasticsearch,让笔者最恶心的倒不是它的反人类的DSL设计,而是每次安装都需要修改进程的最大文件描述符。那ES与文件描述符有啥恩怨呢,下面就来唠叨唠叨。首先说说文件描述...【详细内容】
2023-12-13  Search: elasticsearch  点击:(128)  评论:(0)  加入收藏
Mongodb和Elasticsearch计算经纬度哪个性能更好
MongoDB和Elasticsearch都支持计算经纬度距离,但它们的性能表现可能因使用场景和数据规模而异。性能对比1、数据索引和存储 MongoDB使用地理空间索引(2dsphere)来支持经纬度数...【详细内容】
2023-12-11  Search: elasticsearch  点击:(231)  评论:(0)  加入收藏
SpringBoot整合ElasticSearch详解及相关使用方法
环境:springboot2.4.12 + ElasticSearch7.8.0简介Elasticsearch是一个分布式搜索引擎,底层基于Lucene实现。它屏蔽了Lucene的底层细节,提供了分布式特性,同时对外提供了Restful...【详细内容】
2023-11-10  Search: elasticsearch  点击:(204)  评论:(0)  加入收藏
Elasticsearch的实际应用与扩展案例
当谈到搜索和分析大量数据时,Elasticsearch 是一个强大且广泛使用的工具。它是一个开源的分布式搜索和分析引擎,被设计用于处理海量数据,并提供实时的搜索、分析和可视化功能。...【详细内容】
2023-10-16  Search: elasticsearch  点击:(272)  评论:(0)  加入收藏
十分钟掌握Doris,超越Hive、Elasticsearch和PostgreSQL
以前,数据仓库通常由Apache Hive、MySQL、Elasticsearch和PostgreSQL组成。它们支持数据仓库的数据计算和数据存储层: 数据计算:Apache Hive作为计算引擎。 数据存储:MySQL为Dat...【详细内容】
2023-09-27  Search: elasticsearch  点击:(228)  评论:(0)  加入收藏
何时使用Elasticsearch,而不是MySQL?
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析: 数据模型 查询语言 索引和搜索 分布式和高可...【详细内容】
2023-08-22  Search: elasticsearch  点击:(195)  评论:(0)  加入收藏
▌简易百科推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  刘长伟    Tags:UI框架   点击:(7)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(11)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(23)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(62)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(52)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(43)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(58)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(72)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(95)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(91)  评论:(0)  加入收藏
站内最新
站内热门
站内头条