Elasticsearch: 权威指南

ELK ELK_DOC DOC_CN Kibana 用户手册

MacOS中Elasticsearch的安装「借助Homebrew」

Elasticsearch基本概念和使用详解 ElasticSearch介绍和基本概念 Elasticsearch 数据类型全景概览

新增字段,设置默认值

brew install elasticsearch #安装 
brew info elasticsearch # 查看
brew services start elasticsearch #运行 http://127.0.0.1:9200/
brew services stop elasticsearch
​
====== kibana ======
brew install kibana
brew services start kibana  # 127.0.0.1:5601
### elasticsearch-head插件
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start # http://localhost:9100/
​
### 查看集群健康状态 http://127.0.0.1:9200/_cat/health?v
​
​
######## 自己安装
./bin/elasticsearch -d -p pid
pkill -F pid
(./bin/kibana > /dev/null 2>&1 &)

logstash

日常操作

任务管理 索引别名和零停机 三种分页解读

######  reindex ######
POST _reindex
{
  "source": {
    "index": "twitter",
    "size": 50000
  },
  "dest": {
    "index": "new_twitter",
    "version_type": "internal"
  }
}
GET _tasks?actions=*reindex  # 获取reindex任务,使用Task API查询进度
POST _tasks/_cancel?nodes=nodeId1,nodeId2&actions=*reindex  # 删除reindex任务
​
POST _tasks/node_id:task_id/_cancel  # 取消任务

ES 分页建议

  • 增加默认的筛选条件,尽量减少数据量的展示,比如:最近一个月;

  • 限制总分页数,比如:淘宝、京东仅显示100页查询结果,百度仅显示76页;

  • 修改跳页的展现方式,改为滚动显示,或小范围跳页,比如:谷歌、百度的小范围跳页。

三种分页比较

  • from+size:适用于浅分页(数据量小于max_result_window),在增大max_result_window情况下,也可实现深度分页,但效率低下,可能出现 OOM。

  • scroll:适用于数据导出,基于生成的历史快照查询,对于数据的变更不会反映到快照上。

  • search_after:适用于实时请求和高并发场景(深度分页+排序),由于每一页的数据依赖于上一页最后一条数据,所以无法做到随机跳页(滚动显示)。

精准匹配短语

GET companies/_search
{
 "query": {"bool": {
   "must": [
     {"simple_query_string": {
       "query": "\"cnc machine\"",
       "fields": []
     }}
   ]
 }}
}

ES 慢日志

Elasticsearch:Elasticsearch 中的慢日志