ElasticSearch

REST API用途
ES提供了很多全面的API,大致可以分成如下几种:
1 检查集群、节点、索引的健康情况
2 管理集群、节点,索引数据、元数据
3 执行CRUD,创建、读取、更新、删除 以及 查询
4 执行高级的查询操作,比如分页、排序、脚本、聚合等

查看集群状态
可以通过CURL命令发送REST命令,查询集群的健康状态:

//查看集群状态
curl 'localhost:9200/_cat/health?v'

//查询节点的列表
curl 'localhost:9200/_cat/nodes?v'

//查看所有的索引
curl 'localhost:9200/_cat/indices?v'

//创建索引
curl -XPUT 'localhost:9200/customer?pretty'

//插入数据
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
  "name": "John Doe"
}'

//查询数据
curl 'localhost:9200/customer/external/1?pretty'

//删除索引
curl -XDELETE 'localhost:9200/customer?pretty'

不使用id的时候

curl -XPOST ‘localhost:9200/customer/external?pretty’ -d ’ {“name”: “mike” }’  

基于kibana

创建索引
PUT account
删除索引
DELETE account
//查询
POST account/_mapping/list/
{
    "query" : {
        "match" : {
            "name": "汽车"
        }
    },
    "from" : 0, 
    "size" : 200  //不加默认10条;
}

//返回两个字段
{
	"query": { "match_all": {} },
	"_source": ["name", "id"]
}

//查询总数
GET account/_count

分词
ik 带有两个分词器
ik_max_word :会将文本做最细粒度的拆分;尽可能多的拆分出词语
ik_smart:会做最粗粒度的拆分;已被分出的词语将不会再次被其它词语占有

GET _analyze
{
  "analyzer": "ik_smart",
  "text": ["晚上吃什么"]
}

聚合

GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": { "field": "interests" }
    }
  }
}

es进行聚合操作时提示Fielddata is disabled on text fields by default

PUT account/_mapping/list/
{
  	"properties": {
    	"interests": { 
      		"type":     "text",
      		"fielddata": true
    	}
  	}
}

可以先看下索引里面字段属行

GET account/_mapping

es 不支持date日期格式yyyy-MM-dd HH:mm:ss
如果设置了映射,就不能动态添加字段了,就要设置所有字段的字段,比较渣

PUT account
{
  "mappings": {
    "list": {
      "properties": {
        "ctime": {
          "type": "date",
          "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        },
        "utime": {
          "type": "date",
          "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        },
      }
    }
  }
}

//php 设置日期类型
$params = [
    'index' => 'account',  //索引名(相当于mysql的数据库)
    'body' => [
        'mappings' => [
            'list' => [ //类型名(相当于mysql的表)
                'properties' => [ //文档类型设置(相当于mysql的数据类型)
                    'ctime' => [
                        'type' => 'date',
                        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                    ],
                    'utime' => [
                        'type' => 'date',
                        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                    ]
                ]
            ]
        ]
    ]
];
$data = $this->client->indices()->create($params);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值