ElasticSearch相关基础汇总

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElasticSearch相关基础汇总: 1、版本演变: 1.x----->2.x----->5.x----->6.x 2、mac电脑上安装elasticsearch命令: brew install elasticsearch 或者直接下载压缩包解压 3、mac上查看.
ElasticSearch相关基础汇总:
    1、版本演变:  1.x----->2.x----->5.x----->6.x 
    2、mac电脑上安装elasticsearch命令: brew  install  elasticsearch 或者直接下载压缩包解压
    3、mac上查看已经安装好的services列表: brew  services list 
    4、实用插件head的安装:
          (1)、下载:git clone git://github.com/mobz/elasticsearch-head.git
          (2)、cd elasticsearch-head
          (3)、npm install  或者  cnpm install
          (4)、npm run start 或者 cnpm run start
    5、配置elasticsaerch 和 elasticsearch-head 插件
          (1)、停掉elasticsearch-head 
          (2)、停掉elasticsearch:    brew services stop elasticsearch
          (3)、查找elasticsearch.yml文件位置:     sudo find / -name elasticsearch.yml
          (4)、在elasticsearch.yml文件末尾添加:    
                    http.cors.enabled: true
                    http.cors.allow-origin:  "*"
                    
          (5)、 启动es:  brew services start  elasticsearch  启动elasticsearch-head:  cnpm run start 
          
          
    6、分布式安装es ,一个master节点,两个slave节点
          (1)、修改主节点elasticsearch.yml配置文件,在文件末尾添加:
                   cluster.name:  biges         #指定es集群的名字
                   node.name:   master          #指定节点的名字
                   node.master:  true           #指定当前节点就是主节点
                   network.host:  127.0.0.1     #指定为本机地址,端口还是9200
                  
          (2)、修改slave节点的  elasticsearch.yml 文件:
                   cluster.name:  biges         #指定es集群的名字    
                   node.name:   slave1/slave2   #指定节点的名字
                   network.host:  127.0.0.1     #指定为本机地址
                   http.port: 9201/9202         #指定slave节点的端口   
                   discovery.zen.ping.unicast.hosts: ["127.0.0.1"]     #发现master位置          
                  
     7、es基础概念
          (1)、集群与节点:   master + slave1 + slave2  总体是一个集群,master、slave1、slave2分别是一个子节点
          (2)、索引:含有相同属性的文档的集合
          (3)、类型:索引可以定义一个或者多个类型,文档必须属于一个类型
          (4)、文档:文档是可以被索引的基本数据单位
          (5)、分片:每个索引都有多个分片,每个分片是一个lucene索引
          (6)、备份:拷贝一份分片就完成了分片的备份
          
    8.es中索引相关:
          (1)、API基本格式: http://<ip>:<port>/<索引>/<类型>/<文档id>
          (2)、restful  api 的 http 动词: get/put/post/delete
          (3)、实用postman创建索引很方便。
    9.es的查询语法
          (1)、简单查询:
               127.0.0.1:9200/book/novel/1
          
          (2)、条件查询
               127.0.0.1:9200/book/_search
               {
                  "query":{
                      #"match_all": {}
                      "match":{
                          "title": "elastcisearch"
                      }
                  },
                  "from": 1,
                  "size": 10,
                  "sort": [
                        {"publish_date": {"order": "desc"}}
                  ]
               }
          
          (3)、聚合查询
                127.0.0.1:9200/book/_search
                
                {
                    "aggs":{
                         "group_by_word_count": {
                              "terms": {
                                  "field": "word_count"
                              }
                        },
                        
                        "group_by_publish_date": {
                              "terms": {
                                  "field": "publish_date"
                              }
                        }
                    }
                }
                
                或者 
                
                {
                    "aggs":{
                         "group_word_count": {
                              "stats": {
                                  "field": "word_count"
                              }
                        }
                    }
                }
                
                
  10、高级查询
       子条件查询:  特定字段查询所指特定值
       复合条件查询:  以一定的逻辑组合子条件查询
      
      (1)、Query
            全文本查询:  针对文本类型数据
            字段级别查询:   针对结构化数据,如数字、日期等
            模糊匹配:
                127.0.0.1:9200/book/_search
                {
                    "query": {
                        "match": {
                             "author"; "test"
                        }
                    }
                }
                或者
                {
                    "query": {
                        "match_phrase": {
                             "title"; "elasticsearch入门"
                        }
                    }
                }
                多字段匹配查询:
                {
                    "query":{
                        "multi_match": {
                            "query": "瓦利",
                            "fields":  ["author" ,"title"]
                        }
                    }
                }
                语法查询:
                {
                    "query": {
                        "query_string": {
                            #"query": "(elasticsearch AND  大法) OR python"
                            "query":  "test  OR elasticsearch",
                            "fields":  ["title","author"]
                        }
                    }
                }
                结构化查询:
                {
                    "query":{
                        "term":{
                            #"word_count": 1000
                            "author":  "test"
                        }
                    }
                }
                范围查询:
                {
                    "query": {
                        "range": {
                            "word_count": {
                                "gte": 1000,
                                "lte": 10000
                            }
                        }
                    }
                }
                
              
            
            
      (2)、filter
            在查询的过程中,只判断该文档是否满足条件,只有yes或者no
            127.0.0.1:9200/book/_search
            {
                "query": {
                    "bool": {
                        "filter": {
                            "term":  {
                                "word_count":  1000
                            }
                        }
                    }
                }
            }
      (3)、复合查询
            固定分数查询 , 只支持filter
            127.0.0.1:9200/_search
            {
                "query": {
                    "constant_score": {
                         "filter": {
                            "match": {
                                "title": "elasticsearch"
                            }
                        },
                        "boost": 2
                    }
                }
            }
            
            布尔查询
            {
                "query": {
                    "bool": {
                        "should": [
                            {
                                "match": {
                                    "author": "test"
                                }
                            },
                            {
                                "match":  {
                                    "title": "elasticsearch"
                                }
                            }
                        ]
                    }
                }
            }
            
            或者:
            
            {
                "query": {
                    "bool": {
                        "must": [
                            {
                                "match": {
                                    "author": "test"
                                }
                            },
                            {
                                "match": {
                                    "title": "elasticsearch"
                                }
                            }
                        ],
                        "filter":[
                            {
                                "term": {
                                    "word_count": 1000
                                }
                            }
                        ]
                    }
                }
            }
            或
            {
                "query": {
                    "bool": {
                        "must_not": {
                            "term": {
                                "author": "test"
                            }
                        }
                    }
                }
            }
            
          
          
    备注:本文是从个人的印象笔记之中整理到博客文章的,印象笔记写博客,整理文章还是欠缺,还得是博客才行,后期会保持每天一篇的节奏将个人印象笔记中记录的东西整理到阿里云博客上,阿里云博客上传图片有时候会显示不出来,尴尬。       
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
SQL 运维 Java
史上最全的ElasticSearch系列之基础(二)(下)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
107 0
|
SQL JSON 自然语言处理
史上最全的ElasticSearch系列之基础(二)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
144 0
|
JSON Java API
史上最全的ElasticSearch系列之基础(一)(下)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
123 0
|
存储 JSON 自然语言处理
史上最全的ElasticSearch系列之基础(一)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
190 0
|
JSON 缓存 监控
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (三)
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (三)
191 0
|
SQL JSON 关系型数据库
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (二)
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (二)
181 0
|
存储 SQL JSON
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (一)
白日梦的Elasticsearch系列笔记(一)基础篇-- 快手上手ES (一)
355 0
|
数据采集 搜索推荐 Java
阿里云Elasticsearch集群的基础学习
阿里云Elasticsearch集群的基础学习
167 0
阿里云Elasticsearch集群的基础学习
|
存储 数据建模 关系型数据库
干货 | Elasticsearch基础但非常有用的功能之二:模板
1、 引言 业务场景1:数据量非常大,需要进行索引生命周期管理,按日期划分索引,要求多个索引的Mapping一致,每次手动创建或者脚本创建都很麻烦! 怎么破? 业务场景2:实际业务多个索引,想让多个索引中的相同名字的字段类型完全一致,以便实现跨索引检索。怎么破?
253 0
干货 | Elasticsearch基础但非常有用的功能之二:模板
|
存储 自然语言处理 关系型数据库
干货 | Elasticsearch基础但非常有用的功能之一:别名
本文是系列文章第一篇。介绍Elasticsearch的一些非常基础但实战开发确非常有用的技术点。了解这些技术点会帮助你设计更易于维护的数据索引,预先知道PB级大数据索引实战中的坑,提升工作效率。 本文从别名分类、索引别名实践、索引别名的好处、索引别名常见问题及坑解读、字段别名实践一把五个方面进行详细解读。
250 0
干货 | Elasticsearch基础但非常有用的功能之一:别名

热门文章

最新文章