ElasticSearch:数据的魔法世界

这篇具有很好参考价值的文章主要介绍了ElasticSearch:数据的魔法世界。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ElasticSearch:数据的魔法世界,Java 进击高手之路,elasticsearch,jenkins,大数据,服务器,开发语言,git,windows

欢迎来到ElasticSearch的奇妙之旅!在这个充满魔法的搜索引擎世界中,数据不再是沉闷的数字和字母,而是变得充满活力和灵动。无论你是刚刚踏入数据探索的小白,还是已经对搜索引擎有所了解的行者,本篇博客都将为你揭示ElasticSearch的神奇之处。

ElasticSearch简介:探秘搜索引擎的奇妙

ElasticSearch,这个名字听起来像是来自魔法世界的秘密组织,但实际上,它是一款强大的开源搜索引擎。ElasticSearch基于Lucene构建而成,不仅仅是搜索引擎,还是实时的分布式文档存储,具备全文搜索和分析能力。

魔法1:索引与文档的魔法花园

在ElasticSearch的王国里,数据被组织成索引和文档的结构。索引类似于传统数据库中的表,而文档则是我们实际存储的数据单元。让我们一起来创造一些魔法吧!

首先,让我们创造一个名为products的索引:

PUT /products
{
  "mappings": {
    "properties": {
      "name": { "type": "text" },
      "price": { "type": "float" },
      "category": { "type": "keyword" }
    }
  }
}

这段魔法咒语创建了一个名为products的索引,并定义了文档中的字段类型。接下来,让我们添加一些商品的魔法文档:

POST /products/_doc/1
{
  "name": "Magic Wand",
  "price": 19.99,
  "category": "Enchantment"
}

POST /products/_doc/2
{
  "name": "Invisibility Cloak",
  "price": 99.99,
  "category": "Apparel"
}

POST /products/_doc/3
{
  "name": "Potion of Wisdom",
  "price": 49.99,
  "category": "Consumables"
}

通过这些魔法文档,我们在products索引中创造了一些商品的奇妙信息。

魔法2:搜索与查询的奇迹

ElasticSearch最强大的能力之一就是其搜索和查询的魔法。让我们通过一些简单的咒语感受一下:

全文搜索咒语:

如果我们想要找到所有包含关键词"cloak"的商品:

GET /products/_search
{
  "query": {
    "match": {
      "name": "cloak"
    }
  }
}

这个咒语将返回所有商品中名称包含"cloak"的文档。

精确匹配咒语:

如果我们想要查找属于"Apparel"类别的商品:

GET /products/_search
{
  "query": {
    "term": {
      "category.keyword": "Apparel"
    }
  }
}

这个咒语将返回所有类别为"Apparel"的商品文档。

范围查询咒语:

如果我们想要查找价格在50到100之间的商品:

GET /products/_search
{
  "query": {
    "range": {
      "price": {
        "gte": 50,
        "lte": 100
      }
    }
  }
}

这个咒语将返回价格在50到100之间的所有商品文档。

魔法3:聚合与分析的仪式

ElasticSearch不仅仅能找到数据,还能进行聚合和分析的魔法仪式。通过聚合,我们能够获得关于数据的统计信息,进行数据挖掘和分析。

聚合统计仪式:

假设我们想要统计每个类别的商品数量:

GET /products/_search
{
  "aggs": {
    "categories": {
      "terms": {
        "field": "category.keyword"
      }
    }
  }
}

这个仪式将返回每个类别的商品数量统计。

范围聚合仪式:

如果我们想要统计商品价格的分布情况:

GET /products/_search
{
  "aggs": {
    "price_ranges": {
      "range": {
        "field": "price",
        "ranges": [
          { "to": 50 },
          { "from": 50, "to": 100 },
          { "from": 100 }
        ]
      }
    }
  }
}

这个仪式将返回商品价格在不同范围内的数量统计。

ElasticSearch与应用程序的交响乐

在实际应用中,我们往往需要将ElasticSearch与我们的应用程序交织在一起,共同奏响数据的交响乐。在Java应用中,我们可以使用Spring Data Elasticsearch来实现这样的集成。

首先,添加相关的依赖到你的项目中:

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

然后,配置ElasticSearch连接信息:

spring:
  data:
    elasticsearch:
      cluster-name: your-cluster-name
      cluster-nodes: your-cluster-nodes

接下来,创建一个实体类,用于映射ElasticSearch中的文档:

@Document(indexName = "products")
public class Product {
    @Id
    private String id;
    private String name;
    private float price;
    private String category;

    // 省略getter和setter=
}

通过@Document注解,我们指定了文档所属的索引名称。@Id注解用于标识文档的唯一标识。

最后,创建一个Repository接口,用于执行查询操作:

public interface ProductRepository extends ElasticsearchRepository<Product, String> {
    List<Product> findByCategory(String category);
}

通过继承ElasticsearchRepository接口,我们能够轻松地执行各种查询操作,而不需要编写具体的实现代码。

小结:数据的奇妙之旅

通过这篇博客,我们只是轻轻触摸了ElasticSearch的表面,探索了其强大的搜索、查询、聚合和分析能力。ElasticSearch不仅是一款搜索引擎,更是一项让数据变得有趣而强大的技术。希望在这段奇妙的旅程中,你能够对ElasticSearch有了初步的了解,并愿意深入挖掘其更多的神奇之处。在数据的魔法世界里,让我们共同奏响交响乐,感受搜索引擎的魅力。文章来源地址https://www.toymoban.com/news/detail-848138.html

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

到了这里,关于ElasticSearch:数据的魔法世界的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索指针的奇妙世界,程序中的魔法箭头(上)

    指针是内存中最小单元(字节)的编号,也就是地址 我们平时口中所说的指针,通常说的是指针变量。 总结:指针就是地址,平时口头说的指针是指针变量 指针变量:我们通过取地址操作符取出变量的内存起始地址,把地址存放到一个变量中,这个变量就是指针变量。 总结

    2024年01月21日
    浏览(33)
  • “代码驭宠而行“:探索Python的魔法世界,开启编程奇幻之旅!

    无需魔杖,只需键盘,Python将带你进入一个充满奇幻和创造力的世界。本篇博客将引领你走进Python的魔法大门,从编程新手蜕变为编码魔法师,开启一段激动人心的编程奇幻之旅。 如果你是一名编程初学者,并且想要掌握一门强大且广泛应用的编程语言,那么Python绝对是你的

    2024年02月11日
    浏览(30)
  • AI提问不再难:“RBGR魔法公式”让你秒变提示词高手

    AI 时代,正确提问 提出好问题的能力将变得非常重要 ! 美国《大西洋》杂志甚至将其称为:本世纪最重要的职业技能。 为什么重要? 我们先来看一个简单的实际案例,之前星球里有老铁问,翻墙过程中用到的 “机场节点” 是啥意思? 不会提问的小白,可能一上来不经思

    2024年02月03日
    浏览(33)
  • CTF攻防世界 Misc高手进阶区 6分题 Wireshark(详细解析)

    目录 题目链接: 题目解析: 获得flag: 得到一个流量包,打开看得眼花,先关注http 一个个追踪,先看到一个网站 tools.jb51.net/aideddesign/img_add_info 打开之后发现是一个图片加密解密的网站,  导出全部http对象,保存出来。  全部导出之后,发现一个png格式的风景照,和两个较

    2024年02月09日
    浏览(24)
  • 进击的 Java !

    编者按: 近几年,随着云原生时代的到来,Java 遭受了诸多质疑。国际形势和行业格局的变化,大家一定充分感受到了云原生这个话题的热度,难道 Java 真的已过巅峰时期,要走向末路了吗? 龙蜥社区 Java 语言和虚拟机 SIG 成员、龙蜥社区 RISC-V SIG 成员李三红 就这个问题发表

    2023年04月24日
    浏览(45)
  • 当AIGC遇见灌篮高手,一秒钟让动漫/艺术人物在虚拟世界中重现

    关注公众号,发现CV技术之美 随着《灌篮高手》电影版的上映,笔者作为粉丝,也是关注AIGC科技领域的工作者,思考着如何让经典的动漫人物灵活地出现在AIGC世界里。恰好上周,通过朋友的介绍,我了解到一个工具:InsightFaceSwap,来自于GitHub上知名人脸开源项目InsightFace。

    2024年02月09日
    浏览(39)
  • 【华为OD题库-083】玩牌高手-Java

    给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1.在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。 2.选手也可不选择本轮牌面直

    2024年02月04日
    浏览(35)
  • Java高手速成 | 图说重定向与转发

     我们先回顾一下Servlet的工作原理,Servlet的工作原理跟小猪同学食堂就餐的过程很类似。小猪同学点了烤鸡腿(要奥尔良风味的),食堂窗口的服务员记下了菜单,想了想后厨的所有厨师,然后将菜单和餐盘交给专门制作烤鸡腿的厨师,这位大厨根据菜单制作出奥尔良烤鸡腿

    2024年02月09日
    浏览(35)
  • java魔法值

    一、什么是魔法值 魔法值,也叫做魔法数值、魔法数字,通常是指在代码编写时莫名出现的数字,无法直接判断数值代表的含义,必须通过联系代码上下文分析才可以明白,严重降低了代码的可读性。除数字之外,代码中作为key值的常量字符串也被认为是魔法值,尽管其表示

    2024年02月07日
    浏览(19)
  • 开启JDK 11时代,掌握这些新特性,成为Java开发高手!

    大家好,我是小米,欢迎来到小米科技资讯公众号!今天我将为大家详细介绍 JDK 11 的一些新特性。JDK 11 是 Java 语言的一个重要版本,它带来了许多令人振奋的改进和功能,尤其是在电商应用领域。让我们一起来了解吧! JDK 11 引入了全新的 HTTP 客户端 API,取代了过时的 Ht

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包