Elasticsearch学习笔记(四)—基础知识

1 几个定义

1.1 index

  • 索引(名词)

            一个索引类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 。

  • 索引(动词)

            索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换旧文档情况之外。

1.2 type

        分组,由一个或多个json的记录组成。

        不同的 Type 应该有相似的结构(schema)。

1.3 document

       分组里的每个json。

        json里放了具体的信息,如下:

{
  "user": "张三",
  "title": "工程师",
  "desc": "数据库管理"
}

2 操作

2.1 新增索引

  • 新增语句如下

    $ curl -XPUT 'localhost:9200/megacorp/employee/1?pretty' -H 'Content-Type: application/json' -d'
    {
        "first_name" : "John",
        "last_name" : "Smith",
        "age" : 25,
        "about" : "I love to go rock climbing",
        "interests": [ "sports", "music" ]
    }'

    解释:

    megacorp:index名称

    Employee: type名称

    {xxxxx}:json串,记录了数据信息

2.2 全部查询

  • 查询index为megacorp,type为employee全部数据,指令如下:

    $ curl -XGET 'localhost:9200/megacorp/employee/_search'

    控制台打印的信息:

    {"took":7,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":1.0,"hits":[{"_index":"megacorp","_type":"employee","_id":"1","_score":1.0,"_source":
    {
        "first_name" : "John",
        "last_name" : "Smith",
        "age" : 25,
        "about" : "I love to go rock climbing",
        "interests": [ "sports", "music" ]
    }}]}}

2.3 简单查询

  • 查询index为megacorp,type为employee中的first_name为John的数据,指令如下:

    $ curl -XGET 'localhost:9200/megacorp/employee/_search?q=first_name:John

    控制台打印的信息:

    {"took":43,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":0.2876821,"hits":[{"_index":"megacorp","_type":"employee","_id":"1","_score":0.2876821,"_source":
    {
        "first_name" : "John",
        "last_name" : "Smith",
        "age" : 25,
        "about" : "I love to go rock climbing",
        "interests": [ "sports", "music" ]
    }}]}}

2.4 更新数据

更新数据,即是把数据重新插进去,会自动覆盖之前的数据。

2.5 删除数据

  • 指令如下:

    $ curl -XDELETE 'localhost:9200/megacorp/employee/1'\

    控制台打印的信息:

    {"_index":"megacorp","_type":"employee","_id":"1","_version":2,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}
  • 删除文档不会立即将文档从磁盘中删除,只是将文档标记为已删除状态。随着你不断的索引更多的数据,Elasticsearch 将会在后台清理标记为已删除的文档。

3 引用

《Elasticsearch: 权威指南》

《全文搜索引擎 Elasticsearch 入门教程》

猜你喜欢

转载自www.cnblogs.com/yxdz2018/p/10191500.html