1、启动

    转到elasticsearch-5.5.2\bin目录:

    打开命令行输入:elasticsearch

    

  2、ELasticsearch集群已经启动并且正常运行

    curl http://127.0.0.1:9200/?pretty

    

    这说明你的ELasticsearch集群已经启动并且正常运行,接下来我们可以开始各种实验了。

  3、计算集群中的文档数量

    curl -XGET http://127.0.0.1:9200/_count?pretty -d "{\"query\": {\"match_all\": {} }}"

    

    我们看不到HTTP头是因为我们没有让curl显示它们,如果要显示,使用curl命令后跟-i参数:

    curl -i -XGET localhost:9200/

    

   4、查看集群健康状况

    GET /_cat/health?v

    curl -XGET http://127.0.0.1:9200/_cat/health?v

    

    

  5、查看my_index的mapping和setting的相关信息

    GET /index_china?pretty

    curl -XGET http://127.0.0.1:9200/index_china?pretty

    

    

   6、查看所有的index

    GET /_cat/indices?v

    curl -XGET http://127.0.0.1:9200/_cat/indices?v

    

    

    7、空查询

      GET /_search

    8、分页搜索

      GET /_search?from=0&size=5   从0页开始搜索,每页大小是5个记录

      GET /_search?from=1&size=5   从1页开始搜索,每页大小是5个记录    

      POST /_search     // 从1页开始搜索,每页大小是5个记录,和上面的效果一样
      {
        "from": 1,
        "size": 5
      }

    9、range查询

      range 查询找出那些落在指定区间内的数字或者时间:

      被允许的操作符如下:

      gt:大于

      gte:大于等于

      lt:小于
      lte:小于等于

      GET /index_china/fulltext/_search
      {
        "query": {
          "range": {
              "age": {
                  "gte": 20,
                  "lt": 50
                 }
              }
            }
      }

      

    10、组合查询

      现实的查询需求从来都没有那么简单;它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤。为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法。

      你可以用 bool 查询来实现你的需求。这种查询将多查询组合在一起,成为用户自己想要的布尔查询。它接收以下参数:

      must:  文档 必须 匹配这些条件才能被包含进来。
      must_not:  文档 必须不 匹配这些条件才能被包含进来。
      should:  如果满足这些语句中的任意语句,将增加 _score ,否则,无任何影响。它们主要用于修正每个文档的相关性得分。
      filter:  必须 匹配,但它以不评分、过滤模式来进行。这些语句对评分没有贡献,只是根据过滤标准来排除或包含文档。
      
GET /index_china/fulltext/_search
{
"query": {
"bool": {
"must": { "match": { "name": "小张" }},
"must_not": { "match": { "age": }} }
}
}

      

    11、带过滤器的查询

      

GET /index_china/fulltext/_search
{
"query": {
"bool": {
"must": { "match": { "name": "小张" }},
"must_not": { "match": { "age": }},
"filter": {
"range": { "age": { "gte": "" }}
} }
}
}

      

       

      通过将 range 查询移到 filter 语句中,我们将它转成不评分的查询,将不再影响文档的相关性排名。由于它现在是一个不评分的查询,可以使用各种对 filter 查询有效的优化手段来提升性能。

      所有查询都可以借鉴这种方式。将查询移到 bool 查询的 filter 语句中,这样它就自动的转成一个不评分的 filter 了。

      如果你需要通过多个不同的标准来过滤你的文档,bool 查询本身也可以被用做不评分的查询。简单地将它放置到 filter 语句中并在内部构建布尔逻辑:

GET /index_china/fulltext/_search
{
"query": {
"bool": {
"must": { "match": { "title": "how to make millions" }},
"must_not": { "match": { "tag": "spam" }},
"should": [
{ "match": { "tag": "starred" }}
],
"filter": {
"bool": {
"must": [
{ "range": { "date": { "gte": "2014-01-01" }}},
{ "range": { "price": { "lte": 29.99 }}}
],
"must_not": [
{ "term": { "category": "ebooks" }}
]
}
}
}
}
}

  12、验证查询

      查询可以变得非常的复杂,尤其 和不同的分析器与不同的字段映射结合时,理解起来就有点困难了。不过 validate-query API 可以用来验证查询是否合法。

      

GET /index_china/fulltext/_validate/query
{
"query": {
"fulltext" : {
"match" : "really powerful"
}
}
}

      

     说明以上 validate 请求的应答告诉我们这个查询是不合法的

    理解错误信息

GET /index_china/fulltext/_validate/query?explain
{
"query": {
"fulltext" : {
"match" : "really powerful"
}
}
}

    explain参数可以提供更多关于查询不合法的信息

    

    很明显,我们将查询类型(match)与字段名称 (fulltext)搞混了:

      理解查询语句

    对于合法查询,使用 explain 参数将返回可读的描述,这对准确理解 Elasticsearch 是如何解析你的 query 是非常有用的

    

GET /_validate/query?explain
{
"query": {
"match" : {
"fulltext" : "really powerful"
}
}
}

    

    我们查询的每一个 index 都会返回对应的 explanation ,因为每一个 index 都有自己的映射和分析器:

  13、删除索引

    用以下的请求来 删除索引:

     DELETE /my_index

    你也可以这样删除多个索引:

    DELETE /index_one,index_two

    DELETE /index_*

    你甚至可以这样删除 全部 索引:

    DELETE /_all

     DELETE /*

    

    对一些人来说,能够用单个命令来删除所有数据可能会导致可怕的后果。如果你想要避免意外的大量删除, 你可以在你的 elasticsearch.yml 做如下配置:

    action.destructive_requires_name: true

    这个设置使删除只限于特定名称指向的数据, 而不允许通过指定 _all 或通配符来删除指定索引库。你同样可以通过 Cluster State API 动态的更新这个设置。

  14、只查询部分字段

    在一个搜索请求里,你可以通过在请求体中指定 _source 参数,来达到只获取特定的字段的效果:

    查询所有字段

    

    

GET /ott_test/ott_type/_search
{
"query": {"match_all": {}}
} #只查询title和date两个字段的数据 GET /ott_test/ott_type/_search
{
"query": {"match_all": {}},
"_source": ["title","date"]
}

 15、修改密码

  假设用户名:ctr,密码elastic1, 登录后修改如下

POST _xpack/security/user/ctr/_password
{
"password": "elastic"
}

  

 16、其它命令

    集群健康:GET _cluster/health

    监控单个节点:GET _nodes/stats

    集群统计:GET _cluster/stats

    索引统计:GET ott_test/_stats;GET ott_test,ott/_stats;GET _all/_stats

    xpack模块命令:GET /_xpack

    

ElasticSearch5.5.2常用命令的更多相关文章

  1. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  2. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  3. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  4. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  6. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  7. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  8. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  9. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

随机推荐

  1. 浅析_tmain() 与 main() 函数的区别

    _tmain()是为了支持Unicode所使用的main的一个别名,既然是别名,应该有宏定义过的,在<stdafx.h>里 #include <stdio.h> #indlud ...

  2. [AT2698] Don't Be a Subsequence

    题目大意:给定一个字符串,求一个最短的串要求没有在该字符串的子串中出现过,如果有多个,输出字典序最小的那一个. 题解:倒着跑一遍原字符串(以下编号为$1\sim n$),按出现了所有$26$个字母来分 ...

  3. BZOJ 2458: [BeiJing2011]最小三角形 | 平面分治

    题目: 给出若干个点 求三个点构成的周长最小的三角形的周长(我们认为共线的三点也算三角形) 题解: 可以参考平面最近点对的做法 只不过合并的时候改成枚举三个点更新周长最小值,其他的和最近点对大同小异 ...

  4. BZOJ3876 [Ahoi2014&Jsoi2014]支线剧情 【有上下界费用流】

    题目 [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧情.这些游戏往往 都有很多的支线剧情,现在JYY想花费最少 ...

  5. BZOJ1951 [Sdoi2010]古代猪文 【费马小定理 + Lucas定理 + 中国剩余定理 + 逆元递推 + 扩展欧几里得】

    题目 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很久以前,在山的那 ...

  6. 用iFrame模拟Ajax上传文件

    前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...

  7. java中的URLEncoder.encode对应JS中用decodeURIComponent,js和java编码,解码

    用get请求传中文,经常搞到乱码,这几天搞搞这个东西,总结一下,以方便以后处理这类的问题. Java代码中的URLEncoder.encode方法和JS的encodeURIComponent功能差不多 ...

  8. Runtime.getRuntime().exec方法

    Runtime.getRuntime().exec()方法主要用于执行外部的程序或命令. Runtime.getRuntime().exec共有六个重载方法: public Process exec( ...

  9. HDU 4667 Building Fence(求凸包的周长)

    A - Building Fence Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u ...

  10. python 错误 error: invalid command 'egg_info'

    Processing /bs4-0.0.1/setuptools-38.4.0/numpy-1.14.0    Complete output from command python setup.py ...