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. Android之史上最全最简单最有用的第三方开源库收集整理

    Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...

  2. MVC中ajax调用Controller的方法

    1. ajax代码: $.ajax({ async: false, cache: false, type: 'POST', contentType: "application/json&qu ...

  3. 分享知识-快乐自己:Nginx概述及如何使用

    概述: 什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse ...

  4. Javascript-- jQuery样式篇(二)

    jQuery的属性与样式 .attr()与.removeAttr() 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.如:在img元素中,src就是元素的特性,用来标 ...

  5. Java 网络通信(TCP/UDP)

    1.InetAdress类 与  Socket类  >InetAdress  >Socket 2.TCP/IP协议簇  客户端: 创建 Socket:根据指定服务端的 IP 地址或端口号构 ...

  6. 图的Tarjan算法

    “Tarjan有三种算法 你们知道吗”——Tar乙己 void tarjan(int x) { low[x]=dfn[x]=++ind; q[++top]=x;mark[x]=; for(int i= ...

  7. Link-cut-tree 学习记录 & hdu4010

    网上的lct一抓一大把,所以我也不再写什么讲解了,只写一写自己的看法. Link-cut-tree 是用于维护动态树的一种数据结构 所谓动态树就是一片存在边的添加与删除的森林中的一棵树 所以我们要快速 ...

  8. properties使用

    properties可以load store 注释可以采用 "#" 或者"!" 分隔采用"="或者":" 分行采用&qu ...

  9. mysql5.5主从同步复制配置

    在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5 ...

  10. 转:删除redis所有KEY

    转自:http://ssuupv.blog.163.com/blog/static/1461567220135610456193/ 批量删除Key Redis 中有删除单个 Key 的指令 DEL,但 ...