文档章节

【Elasticsearch】Indices APIs

HarryWu
 HarryWu
发布于 2016/04/11 14:36
字数 548
阅读 30
收藏 0


一、Bulk API

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html

The bulk API makes it possible to perform many index/delete operations in a single API call. This can greatly increate the indexing speed.


The REST API endpoint is /_bulk ,and it expects the following JSON structure:

actiion_and_meta_data\n
optional_source\n
actiion_and_meta_data\n
optional_source\n
...
...
actiion_and_meta_data\n
optional_source\n

The possible actions are index,create,delete and update.

二、Put Mapping

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html

Put Mapping API 能够让你为存在的Index创建新的Type,或是为存在的Type创建新的Fields。(The Put mapping API allows you to add a new type on an existing index,or new fields to an existing type)

curl -XPUT 'http://localhost:9200/twitter' -d '{       
  "mappings": {
    "tweet": {
      "properties": {
        "message": {
          "type": "string"
        }
      }
    }
  }
}'                            ==> 创建Index:twitter,创建Type:tweet,创建Fields:message

curl -XPUT 'http://localhost:9200/twitter/_mapping/tweet' -d '{
  "properties": {
    "user_name": {
      "type": "string"
    }
  }
}'                            ==> 为Type:tweet,新增Fields:user_name

curl -XPUT 'http://localhost:9200/twitter/_mapping/user' -d '{
  "properties": {
    "name": {
      "type": "string"
    }
  }
}'                            ==> 为Index:twitter,新增Type:user,和新的Fields:name

Multi-Index:

curl -XPUT 'http://localhost:9200/my_index' -d '{
  "mappings": {
    "user": {
      "properties": {
        "name": {
          "properties": {
            "first": {
              "type": "string"
            }
          }
        },
        "user_id": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}'                ==>创建Index:my_index,并拥有一个Type:user。Type:user拥有两个Fields:name,first


curl -XPUT 'http://localhost:9200/my_index/_mapping/user' -d '{
  "properties": {
    "name": {
      "properties": {
        "last": {                ==> 在存在的Fields新增properties
          "type": "string"
        }
      }
    },
    "user_id": {
      "type": "string",
      "index": "not_analyzed",
      "ignore_above": 100        ==> 更新原有的ignore_above从0到100
    }
  }
}'               ==>

三、Index Templates

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html

Index Templates 当你定义了一个template。新的indx创建时候,只有匹配到template的pattern string。该template的settings,mappings,alias定义就会被应用到新创建的index上。(Index Templates allow you to define templates that will automatically be applied when new indices are created.The templates include both settings and mappings and a simple pattern template that controls whether the templates should be applied to the new index.)

Note: Templates are only applied at index creation time.Changing a template will have no impact on existsing indices.

curl -XPUT 'localhost:9200/_template/template_1' -d 
'{
  "template": "te*",        ==> pattern
  "mappings": {
    "type1": {
      "_source": {
        "enabled": false
      },
      "properties": {
        "host_name": {
          "type": "string",
          "index": "not_analyzed"
        },
        "create_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z YYYY"
        }
      }
    }
  }
}'        ==> Define a template named template_1,with a template pattern of te*.The mappings will be applied to any index name that matches the te* template

Multiple Template Matching:

Multiple index templates can potentially match an index,in this case,both the settting and mappings are merged into the final ocnfiguration of the index.The order of the merging can be controlled useing order parameter,with lower order being applied first, and higher orders overriding them.

curl -XPUT localhost:9200/_template/template_1 -d '{
    "template" : "*",
    "order" : 0,
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "type1" : {
            "_source" : { "enabled" : false }
        }
    }}'

curl -XPUT localhost:9200/_template/template_2 -d '{
    "template" : "te*",
    "order" : 1,
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "type1" : {
            "_source" : { "enabled" : true }
        }
    }}'


© 著作权归作者所有

共有 人打赏支持
HarryWu
粉丝 5
博文 123
码字总数 48768
作品 0
马鞍山
Elasticsearch未授权访问漏洞

  Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。 0x00 Elasticsearch 安装 前提,保证安装了JDK 1.7+ 下载地址:https:/...

bypass
2017/12/22
0
0
Centos7.4部署配置Elasticsearch5.6集群

参考文档 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configuration-changes.html ......

minminmsn
07/09
0
0
Graylog——日志聚合工具中的后起之秀

日志管理工具总览 先看看 推荐!国外程序员整理的系统管理员资源大全 中,国外程序员整理的日志聚合工具的列表: 日志管理工具:收集,解析,可视化 Elasticsearch - 一个基于Lucene的文档存...

超爱fitnesse
2015/06/08
0
1
Centos6搭建elk系统,监控IIS日志

**所需程序: 服务器端:java、elasticsearch、kikbana 客 户 端:IIS、logstash** 一、服务器端(192.168.10.46)操作: 先建立一个ELK专门的目录: [root@Cent65 ~]mkdir /elk/ 上传到elk...

D杀手D
04/24
0
0
elasticsearch权威指南学习笔记一

elasticsearch是什么? elasticsearch是一个基于apache lucene,实时分布式搜索和分析引擎。也是用java开发的,通过使用Restful api来封装lucene的底层实现,使得交互变得简单。和一般的数据...

domi爹
07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
29分钟前
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
52分钟前
3
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
3
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
23
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部