ElasticSearch浅谈

Elasticsearch是什么

在这里插入图片描述

Elaticsearch简称为ES,是一个开源的可扩展的分布式的全文检索引擎,它可以近乎实时的存储、检索数据。本身扩展性很好,可扩展到上百台服务器,处理PB级别的数据。
ES使用Java开发并使用Lucene作为其核心来实现索引和搜索的功能,但是它通过简单的RestfulAPI和javaAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。

起源:Shay Banon。2004年失业,陪老婆去伦敦学习厨师。失业在家帮老婆写一个菜谱搜索引擎。封装了lucene,做出了开源项目compass。找到工作后,做分布式高性能项目,再封装compass,写出了elasticsearch,使得lucene支持分布式。现在是Elasticsearch创始人兼Elastic首席执行官。

Elasticsearch的功能

1 分布式的搜索引擎
分布式:Elasticsearch自动将海量数据分散到多台服务器上去存储和检索
2 全文检索
提供模糊搜索等自动度很高的查询方式,并进行相关性排名,高亮等功能
3 数据分析引擎(分组聚合)
最近一周笔记本电脑这种商品销量排名top10的商家有哪些?最近1个月访问量排名top3的新闻板块是哪些?
4 对海量数据进行近实时的处理
因为是分布式架构,Elasticsearch可以采用大量的服务器去存储和检索数据。可以实现秒级别的数据搜索和分析

Elasticsearch的优点

Elasticsearch的特点是它提供了一个极速的搜索体验。这源于它的高速(speed)。相比较其它的一些大数据引擎,Elasticsearch可以实现秒级的搜索,速度非常有优势。Elasticsearch的cluster是一种分布式的部署,极易扩展(scale )这样很容易使它处理PB级的数据库容量。最重要的是Elasticsearch是它搜索的结果可以按照分数进行排序,它能提供我们最相关的搜索结果(relevance) 。

角色 Roles

在es技术体系中,可以通过为不同的节点分配不同的角色来让不同的节点承担不同的任务,在集群中发挥不同的作用,以此来实现分布式 高可用 高性能 可扩展的系统架构。

在这里插入图片描述
https://blog.csdn.net/wlei0618/article/details/127371710
强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

API

_analyze API可以用来查看指定分词器的分词结果

GET _analyzer
{
   "text":["What are you doing"],
   "analyzer":"standard"
}

常用命令

加白名单
如果是A集群 --> B集群,就需要在B中的elasticsearch.yml 设置A地址为白名单
reindex.remote.whitelist: xx.xx.xx.xx:9200,xx.xx.xx.xx:9200,xx.xx.xx.xx:9200

集群间索引复制
curl -u elastic:MhxzKhl -XPOST localhost:8014/_reindex?wait_for_completion=false -H ‘Content-Type: application/json’ -d ’
{
“source”: {
“remote”: {
“host”: “http://10.x.x.x:8029”,
“username”: “x”,
“password”: “x”
},
“index”: “placepoi”
},
“dest”: {
“index”: “placepoi_uid1”
}
}’

查看进度
curl -u elastic:MhxzKhl -XGET localhost:8014/_tasks/{taskid}

链接: es reindex数据迁移.

Alt

聚合查询

桶聚合:Bucket Aggregations

GET goods/_search
{
  "aggs": {
    "agg_tag_value_count": {
      "terms": {
        "field": "tags" // 注意如果是文本,请使用 keyword 类型
      }
    }
  }
}
GET goods/_search
{
  "aggs": {
    "agg_price_interval": {
      "range": {
        "field": "price",
        "ranges": [
          {
            "to": 1000
          },
          {
            "from": 1000,
            "to": 5000
          },
          {
            "from": 5000
          }
        ]
      }
    }
  }
}

Multi Terms

GET /<index_name>/_search
{
  "aggs": {
    "agg_name": {
      "multi_terms": {
        "terms": [
          {
            "field": "field_1"
          },
          {
            "field": "field_2"
          }
        ]
      }
    }
  }
}

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。1

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

2014-01-07 2014-01-09 2014-01-11 2014-01-13 2014-01-15 2014-01-17 2014-01-19 2014-01-21 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

ES导出成csv

curl -XPOST  -u elastic:xxxxx  -H 'Content-Type: application/json' http://xxxxx:8900/<index_name>/_search -d '{
  "size": 10000,  // 根据需要设置合适的大小
  "query": {
    "match_all": {}
  }
}' | jq -r '.hits.hits[]["_source"] | [ .name, .bid, .address ] | @csv' > output.csv

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. 注脚的解释 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值