文档章节

elasticsearch单模式下api的增删改查操作

eddy_linux
 eddy_linux
发布于 2016/07/24 03:43
字数 1148
阅读 52
收藏 0

1.倒排索引
也被称做反向索引,置入索引,或反向档案.
是一种索引方法,备用来寸存储在全文搜索下某个单词在一个文档或一组文档中的存储位置映射,它是文档检索系统中最常用的数据结构

常规索引建立方式:
    文档--->关键词的映射过程也叫正向索引

倒排反向索引建立
    关键词--->文档的映射,把正想索引的结果重新构造成倒排索引

举例:
文档1 this is one two
文档2 this is two three
文档3 this is one four
文档4 this is two three
文档5 this is one two
文档6 this is one four

关键字的文档位置与文档中的位置
           文档1 文档2   文档3   文档4    文档5   文档6
one           1<3>  0<>      1<3>    0<>      1<3>    1<3>
two           0<>   1<3>     0<>     1<3>     1<4>    0<>
three       0<>   1<4>     0<>     1<4>     0<>     0<>
four       0<>   0<>      1<4>    0<>      0<>     1<4>

加上次数
           文档1    文档2     文档3     文档4       文档5    文档6
one           1<3>,1  0<>        1<3>,1    0<>        1<3>,1    1<3>,1
two           0<>     1<3>,1     0<>       1<3>,1     1<4>,1    0<>
three       0<>     1<4>,1     0<>       1<4>,1     0<>       0<>
four       0<>     0<>        1<4>,1    0<>        0<>       1<4>,1

 

1.索引初始化
创建索引之前需要对索引初始化操作
比如指定shards数量以及replicas的数量
#索引初始化
PUT http://192.168.1.230:9200/library/
{
  "settings":{
    "index":{
              "number_of_shards":5,
              "number_of_replicas":1
    }
  }
}
得到结果:
{
   "acknowledged": true
}

PUT http://192.168.1.230:9200/library2/
{
  "settings":{
    "index":{
              "number_of_shards":5,
              "number_of_replicas":1
    }
  }
}
得到结果
{
   "acknowledged": true
}


2.索引文档api curd
#查看索引设置
GET /library/_settings
得到结果
{
   "library": {
      "settings": {
         "index": {
            "creation_date": "1469302036906",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "iWJ3-I7kSju2iKRMccMAVA"
         }
      }
   }
}
#查看多个索引信息
GET /library,library2/_settings
得到结果
{
   "library": {
      "settings": {
         "index": {
            "creation_date": "1469302036906",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "iWJ3-I7kSju2iKRMccMAVA"
         }
      }
   },
   "library2": {
      "settings": {
         "index": {
            "creation_date": "1469302040431",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "n51vSZO9QEewkaZiLT9LTg"
         }
      }
   }
}

#查看所有索引信息
GET /_all/_settings
得到结果
{
   "logstash-2016.07.23": {
      "settings": {
         "index": {
            "refresh_interval": "5s",
            "creation_date": "1469265908667",
            "number_of_shards": "5",
            "uuid": "Ml0TOQhAR-uvq3aW7zusDg",
            "version": {
               "created": "1070299"
            },
            "number_of_replicas": "1"
         }
      }
   },
   "library2": {
      "settings": {
         "index": {
            "creation_date": "1469302040431",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "n51vSZO9QEewkaZiLT9LTg"
         }
      }
   },
   "library": {
      "settings": {
         "index": {
            "creation_date": "1469302036906",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "iWJ3-I7kSju2iKRMccMAVA"
         }
      }
   },
   ".kibana": {
      "settings": {
         "index": {
            "creation_date": "1469266014087",
            "number_of_shards": "1",
            "uuid": "o0UUkDqoQk6ymVIvul1XKA",
            "version": {
               "created": "1070299"
            },
            "number_of_replicas": "1"
         }
      }
   },
   ".marvel-kibana": {
      "settings": {
         "index": {
            "creation_date": "1469300141050",
            "number_of_shards": "5",
            "number_of_replicas": "1",
            "version": {
               "created": "1070299"
            },
            "uuid": "Z_TBQQq8Tf6s7DjpnHhX5A"
         }
      }
   }
}

#创建索引

#   索引名称/type名称/文档id
PUT /library/books/1
{
  "title":"linux",
  "name":{
    "first":"yys",
    "last":"eddy"
  },
  "publish_date":"2016-07-24",
  "price":"53.99"
}


得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 1,
   "created": true
}

#id可以不设置
#自动生成id
POST /library/books/
{
  "title":"python",
  "name":{
    "first":"yangyin",
    "last":"shen"
  },
  "publisg_date":"2016-02-01",
  "price":"35.99"
}
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "AVYZO9tFHq14CSUoFKMy",
   "_version": 1,
   "created": true
}

#通过id获取文档信息
GET /library/books/1
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
      "title": "linux",
      "name": {
         "first": "yys",
         "last": "eddy"
      },
      "publish_date": "2016-07-24",
      "price": "53.99"
   }
}

GET /library/books/AVYZO9tFHq14CSUoFKMy
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "AVYZO9tFHq14CSUoFKMy",
   "_version": 1,
   "found": true,
   "_source": {
      "title": "python",
      "name": {
         "first": "yangyin",
         "last": "shen"
      },
      "publisg_date": "2016-02-01",
      "price": "35.99"
   }
}
#通过source获取指定字段
GET /library/books/1?_source=title
GET /library/books/1?_source=title,price
GET /library/books/1?_source=
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 1,
   "found": true,
   "_source": {
      "price": "53.99",
      "title": "linux"
   }
}

#更新同一id下的文档通过覆盖的方式更新
PUT /library/books/1
{
  "title":"linux",
  "name":{
    "first":"yys",
    "last":"eddy"
  },
  "publish_date":"2016-07-24",
  "price":"23.99"
}

GET /library/books/1

得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 2,
   "found": true,
   "_source": {
      "title": "linux",
      "name": {
         "first": "yys",
         "last": "eddy"
      },
      "publish_date": "2016-07-24",
      "price": "23.99"
   }
}

#或者通过_update api方式单独进行更新
POST /library/books/1/_update
{
  "doc":{
    "price" : 10
  }
}
GET /library/books/1
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 3,
   "found": true,
   "_source": {
      "title": "linux",
      "name": {
         "first": "yys",
         "last": "eddy"
      },
      "publish_date": "2016-07-24",
      "price": 10
   }
}

POST /library/books/1/_update
{
  "doc":{
    "title":"linux red hat enterpress",
    "price": 20
  }
}
GET /library/books/1
得到结果
{
   "_index": "library",
   "_type": "books",
   "_id": "1",
   "_version": 4,
   "found": true,
   "_source": {
      "title": "linux red hat enterpress",
      "name": {
         "first": "yys",
         "last": "eddy"
      },
      "publish_date": "2016-07-24",
      "price": 20
   }
}

#删除一个文档
DELETE /library/books/1
DELETE /library/books
DELETE /library
DELETE /library2

GET /library/books/1
GET /library/books
GET /library
得到结果
{
   "error": "IndexMissingException[[library] missing]",
   "status": 404
}
以上就是基本的增删改查
下划线打头的是内置关键字

以上是采用elasticsearch的marvel插件来操作的

在linux中可以通过curl来进行操作

curl -XPUT 'http://192.168.1.10:9200/library/' -d '{
    "settings": {
        "index": {
                "number_of_shards": 5,
                "number_of_replicas": 1
        }
    }
}'
curl -XGET 'http://192.168.1.10:9200/library/_settings'
curl -XGET 'http://192.168.1.10:9200/library,library2/_settings'
curl -XGET 'http://192.168.1.10:9200/_all/_settings'
如何用API创建索引
      例: curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }‘

如何用API更新索引
      例: curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{ "script" : "ctx._source.counter += count", "params" : { "count" : 4 } }‘

如何用API删除索引
      例: curl -XDELETE 'http://localhost:9200/twitter/tweet/1'

© 著作权归作者所有

eddy_linux
粉丝 22
博文 135
码字总数 188789
作品 0
成都
程序员
私信 提问
高性能Elasticsearch ORM开发库bboss es 5.0.3.7.8发布

bboss es v5.0.3.7.8已发布。bboss elasticsearch是一套基于query dsl语法操作访问分布式搜索引擎elasticsearch的o/r mapping开发库,底层基于es restful api。使用bboss es,可以快速编写出...

bboss
2017/11/16
2.2K
4
spring boot2集成ES详解

一:运行环境 JDK:1.8 ES:5.6.4 二:学习内容 如何构建spring-data-elasticsearch环境? 如何实现常用的增删改查? 如何实现对象嵌套也就是1对多这种关系? 三:JAVA依赖环境 根据spring-...

woter
2018/07/09
5.1K
4
elasticsearch-head 安装介绍

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 Linux 和 Windows 没什么区别,安装之前确保当前系...

BeckJin
2018/05/19
0
0
ElasticSearch 查询

elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由HTML5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearch/bin/plugin -install mobz/elast...

326647452
2018/06/26
0
0
Meloy 1.0.3 发布 - ES、Redis 等数据管理工具

Meloy [ˈmelə] 是基于PHP7的提供 ES(Elastic Search)、Redis 等数据管理工具框架,可以方便地植入数据相关管理工具。 v1.0.3主要更新: * [ElasticSearch]支持2.x版本的ES * [ElasticSear...

刘祥超
2017/05/22
1K
9

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot系列:Spring Boot集成Spring Cache

一、关于Spring Cache 缓存在现在的应用中越来越重要, Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术,并支持使...

杨小格子
45分钟前
8
0
二、MySql存储引擎简介(笔记)

MySql体系 先来看一下MySql的架构图: MySql的存储引擎在架构的最下层,提供了各式各样的存储特性,下面介绍几个常用的存储引擎。 MyISAM 官方提供的一个存储引擎,在数据库的系统表和系统生...

XuePeng77
昨天
4
0
聊聊nacos config的deleteConfig

序 本文主要研究一下nacos config的deleteConfig ConfigController nacos-1.1.3/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java @Controller@Re......

go4it
昨天
7
0
面试:原来Redis的五种数据类型底层结构是这样的

关注我,可以获取最新知识、经典面试题以及微服务技术分享   在Redis中会涉及很多数据结构,比如SDS,双向链表、字典、压缩列表、整数集合等等。Redis会基于这些数据结构自定义一个对象系统...

ccww_
昨天
9
0
java发送html模板的高逼格邮件

最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样...

码农实战
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部