`
fenshen6046
  • 浏览: 52115 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

5文档接口

es 
阅读更多
创建或者更新接口
PUT twitter/tweet/1
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

结果为
{
    "_shards" : {
        "total" : 2,
        "failed" : 0,
        "successful" : 2
    },
    "_index" : "twitter",
    "_type" : "tweet",
    "_id" : "1",
    "_version" : 1,
    "created" : true,
    "result" : created
}

_shards节点代表副本信息
total:副本总数(包括住数据节点)
successful代表成功总数
failed一个包括失败节点的数组

如果索引定义没有创建,则默认会创建一份索引定义。如果想要关闭则在setting处设置action.auto_create_index为false。同样如果想关闭自动创建列关系设置,可以设置index.mapper.dynamic为false

上面是使用id为的例子,如果希望id自动生成。
POST twitter/tweet/
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

返回
{
    "_shards" : {
        "total" : 2,
        "failed" : 0,
        "successful" : 2
    },
    "_index" : "twitter",
    "_type" : "tweet",
    "_id" : "6a8ca01c-7896-48e9-81cc-9f70661fcb32",
    "_version" : 1,
    "created" : true,
    "result": "created"
}
发现他自动生成了一个id。
默认数据会根据id进行hash到某一个数据节点。(如果想自己控制这个hash值的话,可以通过添加参数?routing=kimchy)
可以给一个文档设置父节点。之后子节点数据会自动和父节点路由到一个数据节点。
当数据写入时,可以定义至少几个数据节点写入,才会返回(除非超时)。默认为主节点,但是可以通过动态设置
index.write.wait_for_active_shards
来改变。
或者在请求中添加参数wait_for_active_shards来改变(正确的数值为all或者自然数)。
如果想要定义过期时间可以再访问请求中添加参数:timeout=5m(5分钟)

获取接口
GET twitter/tweet/0
返回
{
    "_index" : "twitter",
    "_type" : "tweet",
    "_id" : "0",
    "_version" : 1,
    "found": true,
    "_source" : {
        "user" : "kimchy",
        "date" : "2009-11-15T14:12:12",
        "likes": 0,
        "message" : "trying out Elasticsearch"
    }
}
上述是获取twitter索引下的type为twitter的id为0的数据
同样判断他是否存在也可以使用
HEAD twitter/tweet/0


如果希望返回的数据不包括_source ,则请求参数添加_source=false
如果希望对_source里面的数据进行过滤
GET twitter/tweet/0?_source_include=*.id&_source_exclude=entities
。如果只有包含的话
GET twitter/tweet/0?_source=*.id,retweeted

使用
/{index}/{type}/{id}/_source
可以直接获取到文档信息如:
GET twitter/tweet/1/_source


可以控制那个数据节点执行请求。默认为随机的访问。可以设置为_primary,_local以及自定义。
删除接口
删除id为1的数据
DELETE 'http://localhost:9200/twitter/tweet/1'

当然也可以添加routing参数指示请求落到那个数据节点上。

根据搜索删除
POST twitter/twitter/_delete_by_query
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

这种条件语句和查询语句写法一样
如果想要在整个索引中搜索数据并删除的数据
POST twitter/_delete_by_query

如果要垮多个索引
POST twitter,blog/tweet,post/_delete_by_query


默认上面的删除会只删除1000条记录。同样可以自己定制删除记录数
POST twitter/_delete_by_query?scroll_size=5000

同样参数除了支持pretty外,还支持refresh, wait_for_completion, wait_for_active_shards, 和 timeout参数
refresh表示请求处理完成后会进行刷新内容
wait_for_completion=false会执行一些检查,然后返回一个任务(可以再任务接口中进行控制)。
wait_for_active_shards表示必须有多少个存活的副本才执行
timeout表示每个请求等待数据节点可用的时间
返回信息
{
  "took" : 639,
  "deleted": 0,
  "batches": 1,
  "version_conflicts": 2,
  "retries": 0,
  "throttled_millis": 0,
  "failures" : [ ]
}

took代表消耗时间
deleted成功删除的文章数
batches查询删除返回的总数目

任务接口了解(https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html)
更新接口
先获取文档,然后写会数据。通过版本来确保数据没有在中间被修改过
方法同创建

如果想部分更新文档可以采用如下方式
POST test/type1/1/_update
{
    "doc" : {
        "name" : "new_name"
    }
}

根据搜索更新
这个借口需要慎重使用(https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html)
多个条件获取多条数据
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-get.html
复杂接口(bulk api)
就是一个接口中可以糅合修改,删除,添加等操作(https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html)

数据重建(reindex api)
数据重建只是将数据从一个索引复制到另外一个索引中。(但是数据定义还是需要重新自己定义)如下:将所有twitter中的文章复制到new_twitter中
POST _reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

返回类似
{
  "took" : 147,
  "timed_out": false,
  "created": 120,
  "updated": 0,
  "deleted": 0,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "total": 120,
  "failures" : [ ]
}

更细致的需求(https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html)
分享到:
评论

相关推荐

    接口文档模板.docx

    5. **接口安全** - **数据加密**:敏感信息如密码应进行加密传输。 - **权限控制**:限制对某些接口的访问,如仅允许管理员调用后台接口。 - **防注入攻击**:防止SQL注入等安全漏洞。 6. **文档规范** - **...

    API接口文档模版.zip

    5. **响应格式**:描述接口返回的数据结构,包括状态码、数据格式(如JSON或XML)以及具体的响应字段。 6. **错误代码**:列出可能出现的错误代码及其含义,帮助开发者处理异常情况。 7. **示例**:提供请求和响应...

    H5支付接口文档1

    【H5支付接口文档1】主要涉及的是一个用于商家与用户之间进行H5(HTML5)支付交互的技术规范,该接口适用于服务器端的开发。文档的版本为V3.1,强调了保密性,未得到授权不得随意传播,体现了其在金融交易中的安全性...

    ukey开票接口电子发票接口文档发票接口文档

    《电子发票接口文档——以增值税发票税控开票软件数据接口规范3.0为例》 在信息化日益发达的今天,企业对于财务自动化的需求越来越高,其中,电子发票接口的使用成为了关键一环。本文将深入解析“ukey开票接口”与...

    java的API接口文档模板

    5. 货品添加接口 货品添加接口用于添加新的货品信息,请求方式为Get、Post,公共参数包括令牌参数,请求参数包括name和sequence两个参数,响应参数为空。 6. 货品修改接口 货品修改接口用于修改货品信息,请求...

    EAS接口文档1

    ### 知识点:EAS接口文档应用与开发 #### 1. EAS接口文档的目的和重要性 EAS接口文档是为了实现EAS(企业资产管理系统)的开发和集成。文档中提供了关于如何通过接口与EAS系统交互的具体方法,这对于系统开发者而...

    Apifox导出word版接口文档-模板

    5. 部分内容可以包括多级标题和文本内容,组织和呈现接口文档的内容。 6. 范文、模板和素材是相关的概念,可以用于描述和分类Word版接口文档。 7. Apifox中的接口文档可以导出到Word版中,供后续使用和参考。 ...

    接口模板 接口文档

    5. **响应状态码**:如200、400、404等,表示接口调用的结果。 6. **响应数据**:描述接口返回的数据结构,包括数据字段、类型和含义。 接口文档的编写应该详尽且易于理解,对于每个接口,都需要提供清晰的操作示例...

    webservice接口文档说明.docx

    泛微 Webservice 接口文档说明 泛微 Webservice 接口文档说明是指泛微系统提供的一种基于 XML 的 Web 服务接口,用于实现客户关系管理(CRM)系统与其他系统之间的数据交互。该接口文档提供了接口的使用说明、数据...

    5GCMP北向OpenAPI接口文档-V1版

    5GCMP 北向 OpenAPI 接口文档-V1 版知识点总结 概述 5GCMP 北向 OpenAPI 接口文档-V1 版是关于 5G 连接管理平台的 OpenAPI 接口文档,旨在为应用开发者提供详细的接口文档,帮助他们更好地理解和使用 5G 连接管理...

    1.接口文档_接口文档_

    在IT行业中,接口文档是软件开发过程中的重要组成部分,它详细描述了系统或服务之间的交互方式,以便于开发者理解和实现不同组件之间的通信。本篇主要围绕"接口文档"这一主题,结合mac系统上的MySQL 8.0.22安装包,...

    接口文档标准模板-含Word和excel两种

    接口文档是软件开发过程中的重要组成部分,主要用于定义系统或组件之间的交互方式,包括服务提供者与消费者之间的数据交换规范。本资源提供了“接口文档标准模板”,涵盖了Word和Excel两种常见格式,以适应不同团队...

    微信支付接口文档

    5. **统一下单接口** 这是生成预支付订单的核心接口,它将商品详情、交易金额等信息提交给微信服务器,得到的响应数据包含了进行支付所需的所有参数。 6. **支付结果通知** 当用户完成支付后,微信服务器会主动向...

    航信接口文档

    航信接口文档主要涉及到的是与航空信息化相关的技术接口规范,这些接口可能被用于航空公司、旅行社、机场以及其他相关行业的系统集成,以实现数据交换和业务处理。文档中包含的"规范"部分,通常会详细阐述接口的定义...

    国家医保接口文档.rar

    《国家医保接口文档》是一个重要的规范性文件,主要针对我国医疗保障信息平台中的定点医药机构。这份文档的目的是为了统一和规范定点医药机构与医保系统的交互方式,提高数据交换的效率和准确性,确保医疗服务的正常...

    tp5框架开发的restful API接口自动生成文档源码.zip

    在本文中,我们将深入探讨基于ThinkPHP5(简称TP5)框架开发RESTful API接口以及如何自动生成相关文档。RESTful API设计模式已经成为现代Web服务的主流,它以资源为中心,通过HTTP方法来操作资源,提供了简洁、清晰...

    接口文档(范例).doc

    本文档由唐为(为哥)编写并由赵锟审核,日期为2005年5月27日。 文档的编写目的是为了明确接口的功能、行为以及实现细节,方便团队成员理解和实现相关功能,同时减少因理解不一致导致的错误。此外,它还能作为系统...

    工作接口文档示例,内包括html、word、excel等多种形式

    5. **MQTT接口文档**: MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)设备的通信。MQTT接口文档会详细说明主题、消息格式、订阅和发布规则,帮助开发者理解和...

    网联接口开发文档规范

    5. **报文格式**:网联接口通常使用标准的金融报文格式,如ISO 8583或网联自定义的报文格式。开发者需要理解这些报文结构,并能正确解析和构造报文。 6. **并发处理**:由于支付操作往往涉及大量并发请求,因此接口...

    H5支付API接口文档1

    【H5支付API接口文档1】是一份详细的技术文档,主要针对的是H5支付的接口规范,用于在服务器端实现与商户系统之间的交互。这份文档的密级为保密,强调未经许可不得随意扩散,体现了其内容的重要性和敏感性。文档的...

Global site tag (gtag.js) - Google Analytics