Elasticsearch入门

之前搭建logstash的时候使用过elasticsearch。 刚好最近在公司也用到了es,写篇水文记录一下也当做笔记吧。

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,使用RESTful web暴露接口。

它有许多特性,比如以下几个属性:

1.实时数据
2.实时分析
3.分布式设计
4.高可用性
5.全文搜索
6.面向文档

索引

索引Index是es中的一个存储数据的地方。相当于关系型数据库中的数据库。

创建一个员工索引的例子如下,创建索引还有很多选项,就不一一说明了:

POST $HOST/employee

{
  "mappings": {
    "employee": {
      "_ttl": {
        "enabled": true,
        "default": "5d"
      },
      "_timestamp": {
        "enabled": true,
        "format": "yyyy-MM-dd HH:mm:ss"
      },
      "properties": {
        "name": {
          "type": "string",
          "store": "no",
          "index": "not_analyzed",
          "index_options": "docs"
        },
        "birth_date": {
          "type": "date",
          "store": "no",
          "index": "not_analyzed",
          "index_options": "docs",
          "format": "yyyy-MM-dd HH:mm:ss"
        },
        "age": {
          "type": "date",
          "store": "no",
          "index": "not_analyzed",
          "index_options": "docs",
          "format": "yyyy-MM-dd HH:mm:ss"
        }
      }
    }
  }
}

索引创建完之后还可以修改(添加一个hobby属性),需要注意的是,修改mapping不允许修改属性的类型:

PUT $HOST/employee/employee/_mapping

{
"employee": {
    "properties": {
        "name": {
            "type": "string",
            "store": "no",
            "index": "not_analyzed",
            "index_options": "docs"
        },
        "birth_date": {
            "type": "date",
            "store": "no",
            "index": "not_analyzed",
            "index_options": "docs",
            "format": "yyyy-MM-dd HH:mm:ss"
        },
        "age": {
            "type": "date",
            "store": "no",
            "index": "not_analyzed",
            "index_options": "docs",
            "format": "yyyy-MM-dd HH:mm:ss"
        },
        "hobby" : {
            "type" : "string",
            "index_options": "docs"
        }
    }
}
}

文档

es存储的数据叫做文档,文档存储在索引中。 每个文档都有4个元数据,分别是_id, _type,_index和_version。

_id代表文档的唯一标识符。

_type表示文档代表的对象种类。

_index表示文档存储在哪个索引。

_version表示文档的版本,文档被修改过一次,_version就会+1。

在员工索引中创建文档:

POST $HOST/employee/employee

{
    "name": "format",
    "age": 100,
    "birth_date": "1900-01-01 00:00:00"
}

返回:

{
    "_index": "employee",
    "_type": "employee",
    "_id": "AU5-epuwslU6QVfs_UoX",
    "_version": 1,
    "created": true
}

修改文档:

POST $HOST/employee/employee/AU5-epuwslU6QVfs_UoX

{
    "name": "format",
    "age": 200,
    "birth_date": "1900-01-01 00:00:00"
}

返回:

{
    "_index": "employee",
    "_type": "employee",
    "_id": "AU5-epuwslU6QVfs_UoX",
    "_version": 2,
    "created": false
}

删除文档:

DELETE $HOST/employee/employee/AU5-epuwslU6QVfs_UoX

返回:

{
    "found": true,
    "_index": "employee",
    "_type": "employee",
    "_id": "AU5-epuwslU6QVfs_UoX",
    "_version": 3
}

总结

写了篇水文记录一下es,es还有很多很强大的功能,比如一些query,filter,aggregations等。官方文档上已经写的非常清楚了。这里就不讲了。 - -||

时间: 2024-12-21 13:56:03

Elasticsearch入门的相关文章

ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 ElasticSearch入门 第三篇:索引 ElasticSearch入门 第四篇:使用C#添加和更新文档 ElasticSearch入门 第五篇:使用C#查询文档 ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套 在ElasticSearch中,使用JSON结构来存储数据,

ElasticSearch入门 第八篇:存储

这是ElasticSearch 2.4 版本系列的第八篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 ElasticSearch入门 第三篇:索引 ElasticSearch入门 第四篇:使用C#添加和更新文档 ElasticSearch入门 第五篇:使用C#查询文档 ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套 ElasticSearch入门 第七篇:分析器 Elasti

ElasticSearch 入门

http://www.oschina.net/translate/elasticsearch-getting-started?cmp ElasticSearch 简单入门 返回原文英文原文:Getting Started with ElasticSearch 简介 ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例.像Solr4一样,是基于Lucene构建的.支持时间时间索引和全文检索.官网:http://www.elasticsearch.org 它

ElasticSearch入门 第一篇:Windows下安装ElasticSearch

https://www.elastic.co/downloads/past-releases/elasticsearch-2-4-4 这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 ElasticSearch入门 第三篇:索引 ElasticSearch入门 第四篇:使用C#添加和更新文档 ElasticSearch入门 第五篇:使用C#查询文档

ElasticSearch入门 附.Net Core例子

1.什么是ElasticSearch? Elasticsearch是基于Lucene的搜索引擎.它提供了一个分布式,支持多租户的全文搜索引擎,它具有HTTP Web界面和无模式JSON文档. Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布. ----来自维基百科的解释 我个人的理解是Elasticsearch(以下简称ES)是一个支持分布式的全文搜索引擎,因为在海量数据搜索时,普通关系型.非关系型数据库因为IO读取.处理器运算能力的限制,导致查询效率难以提升,

ElasticSearch入门3: 高级查询

尊重原创:https://www.cnblogs.com/liuxiaoming123/p/8124969.html 单字段 模糊匹配查询与精准查询 postman请求 POST 127.0.0.1:9200/book/_search 请求json: { "query":{ "match":{ "name":"晓明9" } } } 注:match 模糊查询的标识 :查询内容自动拆分成分词来查询 若match 改为 match_

全文搜索引擎 Elasticsearch 入门

1. 百科 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 2. 安装 依赖Java8,本文在Linux上运行 下载.解压 $ wget https://artifacts.elastic.co/downloads/ela

Elasticsearch入门教程(一):Elasticsearch及插件安装

原文:Elasticsearch入门教程(一):Elasticsearch及插件安装 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79194244 分享一个朋友的人工智能教程(请以"右键"->"在新标签页中打开连接"的方式访问).比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:安装Elasti

Elasticsearch入门教程(二):Elasticsearch核心概念

原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79200022 基本概念介绍 Elasticsearch是一个基于Lucene构建的开源.分布式.RESTful的搜索引擎,能够实现近实时(NRT)搜索,稳定.可靠.安装方便.Elasticsearch 不

Elasticsearch入门教程(四):Elasticsearch文档CURD

原文:Elasticsearch入门教程(四):Elasticsearch文档CURD 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/79217590 一: 新增文档POST /{index}/{type} 或 PUT /{index}/{type}/{id} 注意:新增文档时可以显式指定id,id可以是数字也可以是字符串,如果不显示指