带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(3)

简介: 带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(3)

 《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(2) https://developer.aliyun.com/article/1231070



新增字段

 

POST /my_goods/_update/1
{
  "doc": {
    "shopName": "小王店铺"
  }
}

修改店铺名称为:“张三店铺”

 

POST /my_goods/_update/1
{
  "doc": {
    "shopName": "张三店铺"
  }
}
{
  "goodsName" : "苹果 51英寸 4K超高清",
  "skuCode" : "skuCode1",
  "brandName" : "苹果",
  "closeUserCode" : [
    "0"
  ],
  "channelType" : "cloudPlatform",
  "shopCode" : "sc00001",
  "publicPrice" : "8188.88",
  "groupPrice" : null,
  "boxPrice" : null,
  "boostValue" : 1.8,
  "shopName" : "张三店铺"
}
另外还可以使用 PUT 进行修改,只不过需要罗列所有字段:
PUT my_goods/_doc/10
{
  "goodsName": "三星UA55RU7520JXXZ 52英寸 4K超高清",
  "skuCode": "skuCode10",
  "brandName": "三星",
  "closeUserCode": [
    "uc0022"
  ],
  "channelType": "cloudPlatform",
  "shopCode": "sc00001",
  "publicPrice": "8288.88",
  "groupPrice": null,
  "boxPrice": [
    {
      "boxType": "box1",
      "boxUserCode": [
        "uc0022"
      ],
      "boxPriceDetail": 4288.88
    }
  ],
  "boostValue": 1.8
}
用脚本同样能实现更新操作:
POST my_goods/_update/10
{
  "script": {
    "source": "ctx._source.city=params.channelType",
    "lang": "painless",
    "params": {
      "channelType": "cloudPlatform1"
    }
  }
}
Update by query
更新操作还可以使用 _update_by_query API,当店铺编码为 sc00002 时修改 publicPrice 为 5888.00 元。
插入文档 ID 为 2 的店铺商品信息:
POST /my_goods/_create/2
{
  "goodsName": "苹果 55英寸 3K超高清",
  "skuCode": "skuCode2",
  "brandName": "苹果",
  "closeUserCode": [
    "0"
  ],
  "channelType": "cloudPlatform",
  "shopCode": "sc00002",
  "publicPrice": "6188.88",
  "groupPrice": null,
  "boxPrice": null,
  "boostValue": 1

此时查询返回


{
  "goodsName" : "苹果 55英寸 3K超高清",
  "skuCode" : "skuCode2",
  "brandName" : "苹果",
  "closeUserCode" : [
    "0"
  ],
  "channelType" : "cloudPlatform",
  "shopCode" : "sc00002",
  "publicPrice" : "6188.88",
  "groupPrice" : null,
  "boxPrice" : null,
  "boostValue" : 1.0
}

更新当店铺编码为 sc00002 时修改 publicPrice 为 5888.00 元


POST /my_goods/_update_by_query
{
  "script": {
    "source": "ctx._source.publicPrice=5888.00",
    "lang": "painless"
  },
  "query": {
    "term": {
      "shopCode": "sc00002"
    }
  }
}

再次查询结果

 

GET /my_goods/_source/2
{
  "shopCode" : "sc00002",
  "brandName" : "苹果",
  "closeUserCode" : [
    "0"
  ],
  "groupPrice" : null,
  "boxPrice" : null,
  "channelType" : "cloudPlatform",
  "boostValue" : 1.0,
  "publicPrice" : 5888.0,
  "goodsName" : "苹果 55英寸 3K超高清",
  "skuCode" : "skuCode2"
}

Reindex

 

当有业务需要重建索引时需要用到 _reindex API。

 

索引的来源和目的地,必须是已经存在的 index、index alias 或者 data stream。

 

你可以简单的将索引 A reindex 到索引 B,当然也可以带条件的 reindex 到索引 B。

 

如下所示,将 skuCode=skuCode2 的商品信息 reindex 到索引 my_goods_new 中


POST _reindex
{
  "source": {
    302         >   三、产品能力
    "index": "my_goods",
    "query": {
      "match": {
        "skuCode": "skuCode2"
      }
    }
  },
  "dest": {
    "index": "my_goods_new"
  }
}


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(4) https://developer.aliyun.com/article/1231067

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
Python
使用 Pandas 库时,如何处理数据的重复值?
在使用Pandas处理数据重复值时,需要根据具体的数据特点和分析需求,选择合适的方法来确保数据的准确性和唯一性。
1220 64
|
3月前
|
人工智能 运维 监控
让问题不过夜:交易领域“问诊”Agent实践
在日常研发支持中,工程师频繁穿梭于工单、群聊、舆情反馈与问题排查之间:一边解释业务规则与口径,一边追踪链路、查看日志、核对指标、执行补偿。这些工作高度碎片化、重复性强且严重依赖个人经验,导致响应效率低、处理质量不稳定、新人上手困难。 为此,我们围绕“研发支持中的问诊痛点”,构建了一个可持续运营的智能 Agent 系统。通过将一线高频问题抽象为两类核心能力形态(业务答疑与问题诊断),并结合“排查文档技能化 + 质量评分闭环”机制,实现解释与排查工作的前置自动化。该系统不仅“能跑”,更能持续迭代进化,显著缩短首响时间与平均解决时长,提升服务一致性与工程效能。
让问题不过夜:交易领域“问诊”Agent实践
|
4月前
|
SQL 供应链 监控
Quick BI使用案例12:如何实现分组内“最新”与“次新”订单时间计算
本文详解订单时效性分析:通过LOD_FIXED与BI_MAX函数,快速计算各区域“最新/次新订单时间”,助力识别交易活跃度、预警客户流失、优化供应链。
|
2月前
|
缓存 小程序 算法
外卖配送小程序开发核心难点:调度系统与订单分发机制解析
外卖配送小程序开发的核心不在前端界面,而在后端两大能力:智能调度系统(决定配送效率)与科学订单分发机制(保障稳定性和骑手体验)。多数项目“能用但跑不动”,症结恰在此——缺乏多约束实时优化、动态评分派单、多单路径规划及高并发架构设计。
|
6月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题,结合thread、watch、jad等指令定位阻塞线程与异常代码,实现无需重启服务的热更新修复,并通过profile生成火焰图进行性能分析,提升线上问题排查效率。
|
6月前
|
存储 缓存 搜索推荐
电商系统云架构设计
本文深入解析支撑千万级电商业务的云架构设计,涵盖高并发处理、数据层优化、智能搜索与推荐、大促保障等核心环节。基于云原生与微服务理念,构建弹性、稳定、高效的技术体系,助力企业应对流量峰值与复杂业务挑战,实现规模化发展。
437 0
|
机器学习/深度学习 移动开发 测试技术
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
711 1
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
|
11月前
|
缓存 NoSQL 数据库
什么是缓存击穿
缓存击穿是指热点缓存key突然失效,导致大量并发请求直接冲击数据库,造成巨大压力。常见于高并发场景,如热门商品信息失效时。解决方法包括设置热点key永不过期、使用分布式锁、预热数据、熔断降级等,以保障系统稳定性。
964 0
|
缓存 运维 Java
Java静态代码块深度剖析:机制、特性与最佳实践
在Java中,静态代码块(或称静态初始化块)是指类中定义的一个或多个`static { ... }`结构。其主要功能在于初始化类级别的数据,例如静态变量的初始化或执行仅需运行一次的初始化逻辑。
509 4

热门文章

最新文章