ELK学习总结(2-2)单模式CRUD操作

本文介绍了Elasticsearch中常见的操作,包括查看索引信息、创建和更新文档、追加字段定义等,并提供了详细的请求命令及响应结果示例。

------------------------------------------------------

1、查看索引信息

 

请求命令:

GET /library/_settings

GET /library1,library2/_settings

GET /_all/_settings 

 

------------------------------------------------------

2、创建一个 _id 为1的文档

PUT /索引名/类型名/文档id

 

请求命令:

PUT /library/books/1

{

    “title”:“Black Horse”,

    “name”:{

        “first”:“shengqi”,

        “last”:“liang”

    },

    "publish_date","1900/01/01",

    "price":"35.99"     

}

 

POST /library/books/

{

    “title”:“Black Horse”,

    “name”:{

        “first”:“shengqi”,

        “last”:“liang”

    },

    "publish_date","1900/01/01",

    "price":"55.99"     

}

 

------------------------------------------------------

3、查看 _id 为1的书信息

 

请求命令:

GET /library/books/1 

GET /library/books/1?_source=title,price ## 返回title和price

 

响应结果:

{

     "_index":"library",

     "_type":"books",

     "_id":"1",

     "_version":"4",

     "_found":"true",

     "_source":{

          "title":"black fly",

          "name":{

              "first":,"xxx",

              "last":,"yyy"

          }

          "publish_date":"2015-12-06",

          "price":"100"

      }

 

------------------------------------------------------

4、更新docment

方式1,重新put同一个id的新内容

方式2,POST更新方式(_update,doc)

方式3:脚本更新 http://www.cnblogs.com/xing901022/p/5330778.html

 

请求命令:

POST  /library/books/1/_update

{

    “doc”:{

        “price”:“100.99”

    }

}

 

响应结果:

 

------------------------------------------------------ 

5、删除一个 _id=1 的文档

 

请求命令:

DELETE /library/books/1    

 

响应结果:

{

    “_found”:true,

    "_index":"library",

    "_type":"books",

    "_id":"1",

    "_version":"5"

}

 

删除一个 type和索引

 

请求命令:

DELETE /library/books    

DELETE /library

 

响应结果1:

{

  “acknowledge”:true

 

响应结果2:

{

  “error”:"xxx",

   “status”:404

 

6、追加字段定义

https://www.elastic.co/guide/en/elasticsearch/guide/current/_controlling_analysis.html

For instance, let’s add a new field to my_index:

PUT /my_index/_mapping/my_type
{
    "my_type": {
        "properties": {
            "english_title": {
                "type": "string",
                "analyzer": "english"
            }
        }
    }
}

 

elasticsearch 添加字段


Elasticsearch中的mapping一旦创建,就不能再修改。但是添加字段是可以的。
其实很简单,只需在原来的mapping上面直接新增加一个field,
然后重新创建一下mapping就可以了。

原mapping的定义如下:
Java代码 收藏代码
private static XContentBuilder getMapping() throws Exception{
XContentBuilder mapping = jsonBuilder()
.startObject()
.startObject("test")
.startObject("properties")
.startObject("id")
.field("type", "long")
.field("store", "yes")
.endObject()

.startObject("type")
.field("type", "string")
.field("index", "not_analyzed")
.endObject()

.startObject("catIds")
.field("type", "integer")
.endObject()
.endObject()
.endObject()
.endObject();
return mapping;
}

现在加入要增加一个field,名称叫title。新增后的代码如下:
Java代码 收藏代码
private static XContentBuilder getMapping() throws Exception{
XContentBuilder mapping = jsonBuilder()
.startObject()
.startObject("test")
.startObject("properties")
.startObject("id")
.field("type", "long")
.field("store", "yes")
.endObject()

.startObject("type")
.field("type", "string")
.field("index", "not_analyzed")
.endObject()
//新增字段
.startObject("title")
.field("type", "string")
.field("index", "analyzed")
.endObject()

.startObject("catIds")
.field("type", "integer")
.endObject()
.endObject()
.endObject()
.endObject();
return mapping;
}

然后重新putMapping即可。
还不知道如何创建mapping?请看这里。
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值