zoukankan      html  css  js  c++  java
  • ElastaticSearch学习笔记(一) ----- 基础概念

    Elasticsearch 介绍

    • Elasticsearch 是一个高度可扩展且开源的全文检索和分析引擎。可以快速且近实时地存储,检索以及分析海量数据。

    Elasticsearch 应用场景:

    • 提供搜索和自动完成功能。

    • ELK(Elasticsearch/Logstash/Kibana ),Logstash收集数据或日志,Elasticsearch聚合统计分析数据,Kibana可视化。

    为什么不用Mysql?

    • 为什么不用Mysql?

    解答:Mysql在做模糊查询时,使用左模糊不会走索引,会遍历全表,速度比较慢。

    Mysql数据库并不支持分词。

    • Elasticsearch是基于倒排索引的。

    一、概念

    • Index(索引) :

    Elastic 数据管理的顶层单位就叫做 Index(索引)。类似单个数据库。

    • Document(文档):

    Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。

    相当于关系型数据库中的表中的一行记录。

    Document 使用 JSON 格式表示。

    • Type(类型):

    Type其相当于关系型数据库中的表。

    Document 可以分组。比如weather这个Index里面,可以按城市分组(北京和上海),也可以按气候分组。

    这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

    不同的 Type 中同一个字段 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。

    Type是通过mapping定义的。mapping中主要包括字段名、字段数据类型和字段索引类型这3个方面的定义,相当于关系型数据库中的schema。

    • Node 与 Cluster :

    单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

    • _shards(分片):

    分片。每个索引有一个或多个分片,索引的数据被分配到各个分片上,分片有助于横向扩展,N个分片会被尽可能平均地(rebalance)分配在不同的节点上。

    水平拓展,减小单个节点的压力,提高性能。

    • replica(副本):

    故障转移,容错。在 shard/node 故障的情况下提供了高可用性。

    二、常用请求:

    • POST请求 :新建记录,或者是更新记录.

    • DELETE请求 :删除index。

    • GET 请求:查看这条记录

    三、常用命令

    • 查询所有记录:

    使用 GET 方法,直接请求/Index/Type/_search,就会返回所有记录。

    • 根据id查询:

    使用 GET 方法,直接请求/Index/Type/Id。

    	GET 索引名称/类型名称/具体id
    
    • 查看所有索引:

    以下的v是用来要求在结果中返回表头的.

     GET /_cat/indices?v 
    
    • 新增记录:

    向指定的 /Index/Type 发送 PUT 请求,就可以在 Index 里面新增一条记录。比如,向/accounts/person发送请求,就可以新增一条人员记录。

    ???
    
    • 参数 pretty=true 表示以易读的格式返回。
    GET 索引名称/_search?pretty=true
    
    • _search:

    /_search:所有索引,所有type下的所有数据都搜索出来;

    /index1/_search:指定一个index,搜索其下所有type的数据;

    /index1,index2/_search:同时搜索两个index下的数据;

    /1,2/_search:按照通配符去匹配多个索引;

    /index1/type1/_search:搜索一个index下指定的type的数据;

    /index1/type1,type2/_search:可以搜索一个index下多个type的数据;

    /index1,index2/type1,type2/_search:搜索多个index下的多个type的数据;

    /_all/type1,type2/_search:_all,可以代表搜索所有index下的指定type的数据;

    • 列出每个 Index 所包含的 Type:
    GET 索引名称/_mapping
    
    • 分页搜索的语法size:

    GET /_search?size=10

    GET /_search?size=10&from=0

    GET /_search?size=10&from=20

    四、返回内容:

    格式如下:

    {
      "took": 80,
      "timed_out": false,
      "_shards": {
        "total": 3,
        "successful": 3,
        "failed": 0
      },
      "hits": {
        "total": 19,
        "max_score": 1,
        "hits": [
          {
            "_index": "order_dept",
            "_type": "order_dept_hour",
            "_id": "007",
            "_score": 1,
            "_source": {
              "id": "20250816027R0030",
              "dept_code": "020",
              "order_date": "2025-08-27",
              "order_num": 520,
              "hour": "14"
            }
          }
    	  
    	  
    }
    

    具体的解释如下:

    took字段表示该操作的耗时(单位为毫秒),timed_out字段表示是否超时,

    hits字段表示命中的记录,里面子字段的含义如下。

        * total:返回记录数,本例是2条。
    	
        * max_score:最高的匹配程度,本例是1.0。
    	
        * hits:返回的记录组成的数组。
    	
    	* _score字段,表示匹配的程度,分值越高就代表越匹配。
    	
    	* _source: 表示字段。
    

    参考资料:

    http://blog.itpub.net/29715045/viewspace-2653369/

    https://blog.csdn.net/qq_29580525/article/details/80908523

    https://www.cnblogs.com/ghj1976/p/5293250.html

    http://doc.codingdict.com/elasticsearch/0/

  • 相关阅读:
    后台java,前台extjs文件下载
    gridPanel可拖拽排序
    Extjs 获取输入框焦点,并选中值
    java poi对Excel文件加密
    java poi 读取有密码加密的Excel文件
    SSL 与 数字证书 的基本概念和工作原理
    splay树
    树剖版lca
    树链剖分
    kruskal重构树
  • 原文地址:https://www.cnblogs.com/expiator/p/13843900.html
Copyright © 2011-2022 走看看