当前位置: 首页 > news >正文

SpringBoot 整合 Elasticsearch 实战——搜索、高亮、聚合

一、依赖与配置

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>
spring:elasticsearch:uris:http://localhost:9200

二、实体与 Repository

@Document(indexName="products")publicclassProduct{@IdprivateLongid;@Field(type=FieldType.Text,analyzer="ik_max_word")privateStringtitle;@Field(type=FieldType.Keyword)privateStringbrand;@Field(type=FieldType.Double)privateDoubleprice;}
publicinterfaceProductRepositoryextendsElasticsearchRepository<Product,Long>{}

三、搜索(带高亮)

@ServicepublicclassProductSearchService{@AutowiredprivateElasticsearchRestTemplatetemplate;publicList<Product>search(Stringkeyword){NativeQueryquery=NativeQuery.builder().withQuery(q->q.multiMatch(m->m.fields("title","brand").query(keyword))).withHighlight(h->h.fields("title",f->f.preTags("<em>").postTags("</em>"))).build();SearchHits<Product>hits=template.search(query,Product.class);returnhits.stream().map(SearchHit::getContent).toList();}}

四、聚合查询

publicMap<String,Long>aggregateByBrand(){NativeQueryquery=NativeQuery.builder().withAggregation("brands",a->a.terms(t->t.field("brand.keyword"))).build();SearchHits<Product>hits=template.search(query,Product.class);returnhits.getAggregations().get("brands").terms().buckets().stream().collect(Collectors.toMap(b->b.key().stringValue(),b->b.docCount()));}

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

http://www.jsqmd.com/news/1321113/

相关文章:

  • CTF隐写术实战:从LSB原理到Steghide工具破解全流程解析
  • 大模型面试指南:小白程序员必看!收藏版,助你斩获Offer
  • 2026石家庄装修设计公司排名前十全维度测评 - 产品评测官
  • ArcGIS中Clip与Mask工具的本质区别与应用场景全解析
  • 5分钟掌握抖音下载工具:免费开源无水印批量下载全攻略
  • 全不锈钢机身耐用性:自邦商用洗地机选购参考
  • 让智能体每天定时跑任务,结果为何总是送不回来
  • 2026年8月全国环评公司哪家靠谱:4家eudr认证+气候友好认证机构信息盘点参考 - 深度智识库
  • 基于Home Assistant与reSpeaker XVF3800构建本地化智能家居语音中枢
  • SpringBoot2+Vue3全栈招聘系统开发实践
  • DeepSeek 也能看图了?我们给企业 AI 中台的 Flash 0731 装上了一双“眼睛”
  • 卫星图→手机端→农机决策:一套端到端AI识别系统如何72小时内让合作社增产11.3%?
  • 电脑商城推荐适合家居建材行业的:2026家居建材商家选型指南
  • NeRF神经辐射场:从原理到实践,手把手实现三维场景重建
  • 终极Wand-Enhancer解锁指南:从每日2小时限制到永久免费的完整解决方案
  • 拼多多推广有哪些费用?2026最全收费标准
  • 上海企业破产债务重组律师:困境企业拯救与重整专业法律服务 - 品牌深度评测
  • 用AI淘汰普通人,是资本干过最蠢的事
  • Windows DLL注入终极指南:用Xenos轻松掌控进程控制
  • 网盘直链下载助手终极指南:告别限速,轻松获取八大网盘真实下载链接
  • 警惕报价猫腻!贵阳黄金回收低价铺垫、后期砍价套路,一招识破 - 奢侈品回收评测
  • 21 节课程助你开启生成式 AI 应用开发之旅,还有多种运行方式和资源可选!
  • 邢昊|企优托一网推江苏全域负责人,AIGEO 领域首选专家,助力企业抢占 AI 知识图谱流量高地--企优托集团
  • 如何快速掌握游戏修改:Forza Mods AIO 5大实战技巧深度解析
  • VideoDownloadHelper终极指南:3分钟学会免费下载网页视频的简单方法
  • 【扣子×飞书机器人实战指南】:0代码接入、3步上线、7天提升50%团队响应效率
  • uni-app页面返回监听与数据更新:onBackPress()跨端解决方案
  • 2026年8月武汉比较专业的保险纠纷维权律师推荐诗慧律师,深耕各类保险纠纷诉讼 - 专业优选推荐榜
  • SpringBoot+Flowable 审批候选人策略设计:十余种 Strategy + Invoker,一次讲清下一关谁审
  • 为什么92%的技术人学AI却三年内掉队?——解密认知带宽、学习ROI与神经可塑性三重瓶颈(附个人学习效能诊断表)