elasticsearch es RESTful API实践

chrome浏览器 安装 elasticsearch-head插件

1.查询指定的id GET

bop-fms-behaviortrace/_doc/6615 

2.查询带参数 POST

bop-fms-behaviortrace/_doc/_search
{
  "query": {
    "range": {
      "behaviortraceCtime": {
        "from": "2018-11-27 00:00:00",
        "to": "2018-11-27 23:59:59",
        "include_lower": true,
        "include_upper": true,
        "boost": 1
      }
    }
  }
}

{
  "query": {
    "range": {
      "behaviortraceCtime": {
        "from": "2018-11-27 00:00:00",
        "to": "2018-11-27 23:59:59",
        "include_lower": true,
        "include_upper": true,
        "boost": 1
      }
    }
  },
  "size": 1000,
  "sort": {
    "behaviortraceId.keyword": {
      "order": "asc"
    }
  }
}

3.查询总数 GET

bop-fms-behaviortrace/_doc/_count

4.新增数据 post

bop-test/product 
{
  "title":"Python工程师",
  "salary":1000,
  "desc":"1. 参与devops相关系统开发,包括云资源管理平台,cmdb平台、资源申请流程、基础支撑平台开发;2. 参与公司业务系统及自动化运维平台的开发;3. 积累并规范化系统开发的最佳实践并文档化;4. 完善并遵守团队的编码规范,编写高质量、结构清晰、易读、易维护的代码。",
  "date":"2017-08-08"
}

5.sql查询 POST

_xpack/sql?format=json
{
    "query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 5"
}

6.SQL语句转换成DSL POST

_xpack/sql/translate 
{
  "query": "select * from behaviortrace where behaviortraceId = 10"
}

7.分词器分词结果查询:GET

_analyze
{
  "text": "添加了",
  "analyzer": "icu_analyzer"
}

8.reindex重做索引

查看索引文件
curl 10.0.67.23:9200/_cat/indices/adsense-2017.*
重做reindex
curl -XPOST '10.0.67.23:9200/_reindex?pretty' -H 'Content-Type: application/json' -d
{
  "source": {
    "index": "bop-fms-behaviortrace-test"
  },
  "dest": {
    "index": "bop-fms-behaviortrace-test2"
  }
}
新建索引别名
POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "bop-fms-behaviortrace",
        "alias": "bop-fms-behaviortrace-all"
      }
    }
  ]
}
修改索引别名
POST /_aliases
{
    "actions": [
        { "remove": { "index": "my_index_v1", "alias": "my_index" }},
        { "add":    { "index": "my_index_v2", "alias": "my_index" }}
    ]
}

删除旧索引文件
curl -XDELETE '10.0.67.23:9200/adsense-2017.11.22'


优化reindex重建索引的方法:

1.提升批量写入大小值

POST _reindex
{
  "source": {
    "index": "source",
    "size": 5000
  },
  "dest": {
    "index": "dest",
    "routing": "=cat"
 }
}

批量大小设置的依据:
(1)使用批量索引请求以获得最佳性能。
批量大小取决于数据、分析和集群配置,但一个好的起点是每批处理5-15 MB。
注意,这是物理大小。文档数量不是度量批量大小的好指标。例如,如果每批索引1000个文档,:
1)每个1kb的1000个文档是1mb。
2)每个100kb的1000个文档是100 MB。
这些是完全不同的体积大小。
(2)逐步递增文档容量大小的方式调优。
1)从大约5-15 MB的大容量开始,慢慢增加,直到你看不到性能的提升。然后开始增加批量写入的并发性(多线程等等)。
2)使用kibana、cerebro或iostat、top和ps等工具监视节点,以查看资源何时开始出现瓶颈。如果您开始接收EsRejectedExecutionException,您的集群就不能再跟上了:至少有一个资源达到了容量。要么减少并发性,或者提供更多有限的资源(例如从机械硬盘切换到ssd固态硬盘),要么添加更多节点。
2.借助scroll的sliced提升写入效率

POST _reindex?slices=5&refresh
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

slices大小设置注意事项:
1)slices大小的设置可以手动指定,或者设置slices设置为auto,auto的含义是:针对单索引,slices大小=分片数;针对多索引,slices=分片的最小值。
2)当slices的数量等于索引中的分片数量时,查询性能最高效。slices大小大于分片数,非但不会提升效率,反而会增加开销。
3)如果这个slices数字很大(例如500),建议选择一个较低的数字,因为过大的slices 会影响性能。
3.ES副本数设置为0

PUT /my_logs/_settings
{
  "number_of_replicas": 1
}

4.增加refresh间隔

PUT /my_logs/_settings
{ "refresh_interval": -1 }

你可能感兴趣的:(ES分布式搜索)