文档章节

elasticsearch建立索引操作的API

零下三度
 零下三度
发布于 2014/12/06 14:31
字数 941
阅读 16459
收藏 10

ElasticSearch-API-Index

索引创建API允许初始化一个索引。ElasticSearch对多重索引提供了支持,包括跨多个索引执行操作。每个索引在创建时可以让一个特定的设置项与其关联。

  • 最简单的方式创建索引

    curl -XPUT ‘http://localhost:9200/twitter/'
  • 在创建索引的时候指定分片和副本数量,参数格式采用YAML格式

    curl -XPUT ‘http://localhost:9200/twitter/‘ -d ‘
    index:
      number_of_shards:3
      number_of_replicas:2
    ‘
  • 在创建索引的时候指定分片和副本数量参数,参数格式采用JSON格式

    curl -XPUT ‘http://localhost:9200/twitter/‘ -d ‘{
      “settings”:{
          “index”:{
              “number_of_shards”:3,
              “number_of_replicas”:2
          }
      }
    }’

    或者简化为

    curl -XPUT ‘http://localhost:9200/twitter’ -d ‘{
      “settings”:{
          “number_of_shards”:3,
          “number_of_replicas”:2
      }
    }’

    *请注意,你不需要在settings项中显示的指定index。

  • 索引创建API可以接受一个或者一组映射选项

    curl -XPOST localhost:9200/test -d ‘{
      “settings”:{
          “number_of_shards”:1
      },
      “mappings”:{
          “type1”:{
              “_source”:{“enabled”:false},
              “preperties”:{
                  “field1”:{“type”:”string”,
                          ”index”:”not_analyzed”
                  }
              }
          }
      }
    }’
  • REST风格的插入方式。

    curl -XPOST http://localhost:9200/索引名称/索引类型/id -d JSON格式的参数

    比如插入”twitter”的索引,并且索引类型为tweet

      curl -XPUT ‘http://localhost:9200/twitter/tweet/1’ -d ‘{
      “user”:”kimchy”,
      “post_date”:”2012-12-12”,
      “message”:”trying out ElasticSearch!”
    }’

    添加成功后,其会返回操作状态,索引、类型、id等信息如上例中返回信息

    {
      "ok" : true,
      "_index" : "twitter",
      "_type" : "tweet",
      "_id" : "1"
    }
  • 每一个被索引的文档都会有一个版本号,被关联的版本号会作为index API的请求的响应信息一部分返回回来。因此,我们可以在对索引操作的时候,指定特定的版本号,操作对应版本的文档。例如

    curl -XPUT ‘localhost:9200/twitter/tweet/1?version=2’ -d ‘{
      “message”:”elasticsearch now has versioning support,double cool!”
    }’

    *注意 1.版本控制完全是实时的,不会影响接近实时方面的查询操作。如果版本已经被提供了,那么操作执行检查所有的版本。 2.默认情况下,版本从1开始,自增因子为1。

  • op_type。索引操作也接受参数op_type,用来强制创建索引的操作。如果索引尚未建立的时候,可以接受这样的行为,但是当文档的缩影已经存在的时候,该操作会将失败。 下面是一个op_type参数的例子

    curl -XPUT ‘http://localhost:9200/twitter/tweet/1?op_type=create’ -d ‘{
      “user”:”kimchy”,
      “post_date”:”2014-12-05T14:12:12”,
      “message”:”trying out Elastic Searche”
    }’

    另外的一种create方式

    curl -XPUT ‘http://localhost:9200/twitter/tweet/1/_create’ -d ‘{
      “user”:”kimchy”,
      “post_date”:”2009-11-11T14:12:12”,
      “message”:”hello,world”
    }’
  • 自动生成Id.在创建一个Index的操作中,如果没有指定id,系统将会自动地为其生成一个id.

    curl -XPOST ‘http://localhost:9200/twitter/tweet/‘ -d ‘{
      “user”:”kimchy”,
      “post_date”:”2013-11-12T12:12:12”,
      “message”:”Hello,world”
    }’

    操作响应的结果如下

    {
      “ok”:true,
      “_index”:”twitter”,
      “_type”:”tweet”,
      “_id”:”6a8ca01c-7896-48e9-81cc-9f70661fcb32”
    }
  • 路由(Routing)。默认情况下,分片或路由是通过计算文档的hash值来控制的,为了更明确的控制值,送入路由器使用hash函数计算hash值的操作可以通过routing参数来控制。

    curl -XPOST ‘http://localhost:9200/twitter/tweet?routing=kimchy’ -d ‘{
      “user”:”kimchy”,
      “post_date”:”2014-12-12T12:12:12”
    }’
  • TTL。一个文档建立索引的时候,能够为其指定ttl。

    curl -XPUT 'http://localhost:9200/twitter/tweet/1?ttl=86400000' -d '{
      "user": "kimchy",
      "message": "Trying out elasticsearch, so far so good?"
    }'
    curl -XPUT 'http://localhost:9200/twitter/tweet/1?ttl=1d' -d '{
      "user": "kimchy",
      "message": "Trying out elasticsearch, so far so good?"
    }'
    curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
      "_ttl": "1d",
      "user": "kimchy",
      "message": "Trying out elasticsearch, so far so good?"
    }'

    更过信息请浏览_ttl mapping page

  • 想要关注更多不同的,可以在创建索引时设置索引级选项,请看index modules

  • 本文参考信息来自elasticSearch中文社区


© 著作权归作者所有

零下三度
粉丝 8
博文 11
码字总数 13153
作品 0
朝阳
程序员
私信 提问
ElasticSearch安装

ElasticSearch的安装 http://www.elasticsearch.org/下载最新的ElastiSearch版本。 解压下载文件。 cd到${esroot}/bin/,执行elasticsearch启动。 使用curl -XPOST localhost:9200/shutdown......

liuhao_sh
2015/08/13
0
0
Elasticsearch与Solr搜索引擎选型调研文档

Elasticsearch ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开...

小海bug
2018/06/28
0
0
Elasticsearch简介与实战

什么是Elasticsearch?   Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。   Lucene 可以说是当下最先进、高性能、全功能的搜索引...

但盼风雨来_jc
03/06
0
0
如何用 Node.js 和 Elasticsearch 构建搜索引擎

Elasticsearch 是一款开源的搜索引擎,由于其高性能和分布式系统架构而备受关注。本文将讨论其关键特性,并手把手教你如何用它创建 Node.js 搜索引擎。 Elasticsearch 概述 Elasticsearch 底...

oschina
2016/09/29
10.2K
6
Elasticsearch 基础入门

原文地址:Elasticsearch 基础入门 博客地址:www.extlight.com 一、什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于...

moonlightL
2017/09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
2
0
在古老unix中增加新用户

Installing 4.3 BSD Quasijarus on SIMH 目标:要在4.3BSD中新增加用户dmr,指定目录/home/dmr,uid为10 gid=31(guest组,系统已建立) 4.3BSD还没有adduser或useradd 直接修改/etc/passwd...

wangxuwei
今天
2
0
Bootstrap(六)表单样式

基本样式 所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好...

ZeroBit
昨天
3
0
SSL 证书格式转换

SSL 证书格式转换 不同服务器情况下,需要不同的证书格式。 比如 pem 转 pfx。 pem在window 平台下可以导入,但是无法正常使用。 需要转换成pfx。 推荐在线转换工具,由中国数字证书网站提供...

DrChenXX
昨天
2
0
HAProxy

xx

Canaan_
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部