1. 启动时指定集群和节点的名字
./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name
e.g. ./elasticsearch -d -Ecluster.name=shjCluster -Enode.name=shjNode1 # -d 表示后台启动 用 jps 可以查看是否有 Elasticsearch 的进程 这时,只能通过 localhost 访问 elasticsearch。需要修改下面的配置才能让其它的机器也能访问。
vim config/elasticsearch.yml
增加 network.host: 0.0.0.0 在这个配置文件中,更改其它的配置,可以不用每次启动都指定参数:
cluster.name: shj-es-cluster # 指定要加入的集群名称
node.name: esnode-1 # 指定节点
path.data: tmp/esdata # 指定数据文件位置
path.logs: tmp/eslog # 指定日志位置 启动错误的话,可以先看: https://www.cnblogs.com/honeybee/p/6283623.html 访问: http://192.168.137.11:9200/?pretty 检查是否启动成功 批量导入数据:(在包含 accounts.json 的目录下执行下面的命令)
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"
2. 使用 kibana 访问 ES:
修改 kibana.yml 文件中的 elasticsearch.url,指向 ES,本例中为: http://192.168.137.11:9200
后台启动 kibana: nohup ../bin/kibana &
访问 kibana http://localhost:5601 在 kibana 的 Dev Tools 中的 console 里输入
检查集群的状态
GET /_cat/health?v 

一些命令:
(1) 创建一个document: PUT /indexName/typeName/id 示例:
PUT /ecommerce/product/1
{
    "name" : "gaolujie yagao",
    "desc" :  "gaoxiao meibai",
    "price" :  20,
    "producer" :      "gaolujie producer",
    "tags": [ "meibai", "fangzhu" ]
} (2) 查询: GET /index/type/id 示例:
GET /ecommerce/product/1 (3) 更新文档: POST /indexName/typeName/id/_update 示例:
POST /ecommerce/product/1/_update
{
  "doc": {
    "name": "jiaqiangban gaolujie yagao"
  }
}
上面只会更新 name 这一个字段 (4) 删除文档: DELETE /indexName/typeName/id (5) 条件查询 GET /ecommerce/product/_search
(a) 查询所有的商品
GET /ecommerce/product/_search
{
  "query": { "match_all": {} }
} (b) 查询名称包含yagao的商品,同时按照价格降序排序
GET /ecommerce/product/_search
{
    "query" : {
        "match" : {
            "name" : "yagao"
        }
    },
    "sort": [
        { "price": "desc" }
    ]
} (c) 分页查询商品,
GET /ecommerce/product/_search
{
  "query": { "match_all": {} },
  "from": 1, # 从第几条(下标从0开始)开始查询
  "size": 10 # 查询多少条记录
} (d) 指定要查询出来商品的名称和价格就可以
GET /ecommerce/product/_search
{
  "query": { "match_all": {} },
  "_source": ["name", "price"]
} (e) 搜索商品名称包含yagao,而且售价大于25元的商品
GET /ecommerce/product/_search
{
    "query" : {
        "bool" : {
            "must" : {
                "match" : {
                    "name" : "yagao"
                }
            },
            "filter" : {
                "range" : {
                    "price" : { "gt" : 25 }
                }
            }
        }
    }
} (f) 全文检索
GET /ecommerce/product/_search
{
    "query" : {
        "match" : {
            "producer" : "yagao producer"
        }
    }
}
注意: 会搜索出所有包含 "yagao" 和 "producer" 的记录。类似于数据库搜索中的 producer='yagao' or producer=‘producer' (g) 短语检索
GET /ecommerce/product/_search
{
    "query" : {
        "match_phrase" : {
            "producer" : "yagao producer"
        }
    }
}
注意: 类似于数据库搜索中的 producer='yagao producer' (h) 高亮搜索
GET /ecommerce/product/_search
{
    "query" : {
        "match" : {
            "producer" : "yagao"
        }
    },
    "highlight": {
        "fields" : {
            "producer" : {}
        }
    }
} (6) 只返回部分字段
GET /ecommerce/product/1?_source=name,price

批量查询

1. 不同 index 和 type

GET /_mget
{
   "docs" : [
      {
         "_index" : "test_index",
         "_type" :  "test_type",
         "_id" :    1
      },
      {
         "_index" : "test_index",
         "_type" :  "test_type",
         "_id" :    2
      }
   ]
}

2. 如果查询的document是一个index下的不同type种的话

GET /test_index/_mget
{
   "docs" : [
      {
         "_type" :  "test_type",
         "_id" :    1
      },
      {
         "_type" :  "test_type",
         "_id" :    2
      }
   ]
}

3. 如果查询的数据都在同一个index下的同一个type下

GET /test_index/test_type/_mget
{
   "ids": [1, 2]
}

ElasticSearch 学习一: 基本命令的更多相关文章

  1. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  2. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  3. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  4. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  5. ElasticSearch 学习记录之ES高亮搜索

    高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "si ...

  6. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

  7. ElasticSearch 学习记录之父子结构的查询

    父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": ...

  8. Elasticsearch学习笔记一

    Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...

  9. elasticSearch学习安装

    资料: 1.Elasticsearch学习,请先看这一篇! https://blog.csdn.net/laoyang360/article/details/52244917 2. linux下ela ...

  10. elasticsearch学习笔记——相关插件和使用场景

    logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...

随机推荐

  1. java:安装Runtime Environment,设置Tomcat Server 的方法

    Eclipse 中开发Webapp, 一般需要配置Tomcat Server, 以便在Eclipse 中进行Debug.具体的步骤如下: 1. Windows ==>Preference ==& ...

  2. WebElement接口获取值

    通过WebElement接口获取值 size 获取元素的尺寸 text 获取元素的文本 get_attribute(name) 获取属性值 location 获取元素坐标,先找到要获取的元素,再调用该 ...

  3. Linux-MySQL主从配置

    1. MySQL主从原理以及应用场景MySQL的Replication原理非常简单,总结一下:每个从仅可以设置一个主.主在执行sql之后,记录二进制log文件(bin-log).从连接主,并从主获取b ...

  4. C++ STL源码剖析

    stl_config.h defalloc.h stl_alloc.h memory.cpp stl_construct.h stl_uninitialized.h stl_iterator.h ty ...

  5. 用WinDbg分析Debug Diagnostic Tool生成的Userdump文件

    1.下载WinDbg(Debugging Tools for Windows):http://www.microsoft.com/whdc/devtools/debugging/default.msp ...

  6. ECMAScript函数表达式

    --<JavaScript高级程序设计>Chapter7总结 1.匿名函数的作用 (1)动态定义函数 var sayHi; var a=1; if (a>0) { sayHi=fun ...

  7. C++模板特化编程

    在C++中,模板特化是除了类之外的一种封装变化的方法.模板特化可以通过编译器来对不同的模板参数生成不同的代码. 模板特化通常以模板结构体作为载体.常用技法包括:类型定义.静态成员常量定义和静态成员函数 ...

  8. Jenkins配置邮件SMTP(使用QQ邮箱)

    一.QQ邮箱中开启SMTP服务 进入QQ邮箱的设置页面,选择开启POP3/SMTP服务 需要发送一条短信开启服务,成功后,会收到一个密码,一定要截图.复制密码保存好 二.Jenkins中配置SMTP ...

  9. VUE之使用百度地图API

    利用vue创建点餐系统,在点餐系统中需要知道商家地址信息,这时就需要借用百度地图API. 步骤一:申请百度地图密钥: 步骤二:在index.html中添加百度地图JavaScript API接口: & ...

  10. fabric差异化部署mysql和lnmp

    1.代码如下: vim lnmp.py ------------------------------------------> #!/usr/bin/env python from fabric ...