栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【学习笔记】ElasticSearch(ES)基本概念和语句学习笔记

【学习笔记】ElasticSearch(ES)基本概念和语句学习笔记

一、ES名词

ES:ElasticSearch又称ES,是一个可伸缩的、分布式的、近实时搜索的开源全文搜索与分析引擎。

index(索引):一个索引就是一个拥有几分相似特征的文档的集合。相当于MySQL中的数据库。

type(类型):一个索引中可以定义一种或多种类型。一个类型是索引的一个逻辑上的分类/分区,其语义完全由你来定。相当于MySQL中的表。

field(字段):相当于MySQL中表的字段。

mapping(映射):mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等。相当于MySQL中的建表过程中设置默认值、主外键、索引等。

document(文档):一个文档是一个可被索引的基础信息单元,插入索引库以文档为单位。相当于MySQL中的一条记录。

cluster(集群):一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。

node(节点):一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。

shard(分片):Elasticsearch提供了将索引划分成多份的能力,这些份就叫做分片。它允许水平分割/扩展你的内容容量,或者在多个节点上上进行分布式的、并行的操作,进而提高性能/吞吐量。

replicas(复制):Elasticsearch允许你创建分片的一份或多份备份,这些备份叫做复制分片,或者直接叫复制。

二、操作类型和操作对象 1. GET/PUT/POST/DELETe

ES中主要有GET/PUT/POST/DELETE这四种操作,分别表示查询、更新或创建、创建、删除操作。其中PUT和POST的区别是:PUT在插入新数据的时候需要指定_id,而POST则不需要,这个_id是ES中文档的唯一标识。换种说法,PUT是幂等的,即多次执行的结果相同,而POST不是幂等的,多次执行会插入多条数据。

2._mapping/_settings/_search/_count/_doc

_mapping/_settings/_search/_count/_doc分别是对映射、索引设置、查询记录值、查询记录数、查询文档信息的操作,具体看下文中的列子。

三、索引/字段/文档等操作语句 1. 索引操作 (1) 创建索引
# 创建索引的设置信息,也可以直接创建索引字段,此时设置信息取默认值
PUT index_name
{
  "settings" : {
    "index" : {
      "refresh_interval" : "60s",
      "number_of_shards" : "3",
      "translog" : {
        "durability" : "async"
      },
      "max_result_window" : "10000000",
      "unassigned" : {
        "node_left" : {
          "delayed_timeout" : "30m"
        }
      },
      "number_of_replicas" : "1"
    }
  }
}

其中number_of_shards为分片数

(2) 查询索引设置信息
# 查询索引设置信息
GET trade_bill_detail/_settings
(3) 删除索引
# 删除索引
DELETE trade_bill_detail
2. 字段操作 (1) 为索引添加字段
# 为索引添加新字段
PUT trade_bill_detail/_mapping
{
	"properties" : {
        "begin_time" : {
          "type" : "date"
        },
        "expense_begin_time" : {
          "type" : "keyword"
        },
        "account_id" : {
          "type" : "long"
        },
        "price_new" : {
          "type" : "double"
        }
    }
}
(2) 查询字段信息
# 查看索引的所有字段
GET trade_bill_detail/_mapping
3. 文档操作 (1) 查询文档信息
# 查询文档信息,1798023是文档的id
GET trade_bill_detail/_doc/1798023
4. 其他操作 (1) 查询数据总量
# 查询数据总量,以kb为单位。用来在进行数据同步时查询同步情况
GET _cat/indices/trade_bill_detail?v&h=index,docs.count,store.size&bytes=kb
四、查询语句 1. 相等查询
# 相等条件查询
GET trade_bill_detail/_search
{
  "query": {
    "match": {
      "BillID": "Bill7037412215733195052"
    }
  }
}
# 相等条件查询
GET trade_bill_detail/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "ID": "1648022"
          }
        }
      ]
    }
  }
}
2. 不等查询
# 不等条件查询
GET trade_bill_detail/_search
{
	"query": {
		"bool": {
			"must_not": {
			  "match": {
			    "DataDisplayRule": "1"
			  }
			}
		}
	}
}
3. 模糊查询
# 模糊查询
GET trade_bill_detail/_search
{
  "query": {
    "wildcard": {
      "BillID": {
        "value": "*Bill7025695920478818604*"
      }
    }
  }
}
4. 多字段查询
# 对多个字段执行相同的查询
GET trade_bill_detail/_search
{
  "query": {
    "multi_match":{
      "query": "0",
      "fields": ["Price","PriceNew"]
    }
  }
}
5. 排序
# 排序
GET trade_bill_detail/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "ID": {
        "order": "desc"
      },
      "BeginT": {
        "order": "asc"
      }
    }
  ]
}
6. 集合查询
# 集合查询,in条件查询
GET trade_bill_detail/_count
{
  "query": {
    "terms": {
      "ID": [1492462,1648018,1648022,1692420,1692421,1692422,1692423,1692424]
    }
  }
}
7. 记录数查询
# 搜索某字段符合特定条件的记录数
GET trade_bill_detail/_count
{
  "query": {
    "match": {
      "DataDisplayRule": "1"
    }
  }
}
# 查询总记录数
GET trade_bill_detail/_count
8. 大于小于查询
# range查询,gte是大于等于,gt是大于,lte是小于等于,lt是小于
GET index_name/_search
{
  "query":{
    "range":{
      "Price":{
        "gte": 10,
        "lte": 30
      }
    }
  }
}

9. 综合查询
GET index_name/_search
{
    "from":0,
    "query":{
        "bool":{
            "filter":[
                {
                    "range":{
                        "BeginTime":{
                            "from":"2021-01-01T00:00:00+08:00",
                            "include_lower":true,
                            "include_upper":true,
                            "to":null
                        }
                    }
                },
                {
                    "range":{
                        "BeginTime":{
                            "from":null,
                            "include_lower":true,
                            "include_upper":false,
                            "to":"2022-01-01T00:00:00+08:00"
                        }
                    }
                },
                {
                    "term":{
                        "BillType":"normal"
                    }
                },
                {
                    "term":{
                        "SubjectNo":"3423"
                    }
                },
                {
                    "terms":{
                        "DataDisplayRule":[
                            "1",
                            "3"
                        ]
                    }
                },
                {
                    "bool":{
                        "should":[
                            {
                                "bool":{
                                    "filter":{
                                        "wildcard":{
                                            "BillProperty":{
                                                "wildcard":"*system*"
                                            }
                                        }
                                    }
                                }
                            },
                            {
                                "bool":{
                                    "filter":{
                                        "wildcard":{
                                            "BillProperty":{
                                                "wildcard":"*orderNew*"
                                            }
                                        }
                                    }
                                }
                            }
                        ]
                    }
                },
                {
                    "bool":{
                        "should":[
                            {
                                "bool":{
                                    "filter":{
                                        "term":{
                                            "OrderNo":"Bill7025276297373585708"
                                        }
                                    }
                                }
                            },
                            {
                                "bool":{
                                    "filter":{
                                        "term":{
                                            "BillID":"Bill7025276297373585708"
                                        }
                                    }
                                }
                            }
                        ]
                    }
                }
            ]
        }
    },
    "size":10,
    "sort":[
        {
            "BeginTime":{
                "order":"desc"
            }
        },
        {
            "InstanceNo":{
                "order":"asc"
            }
        },
        {
            "ID":{
                "order":"asc"
            }
        }
    ],
    "track_total_hits":true
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号