说明信息

  1. http://localhost:9200
  2. {
  3. "name" : "atntrTf",
  4. "cluster_name" : "elasticsearch",
  5. "cluster_uuid" : "tf9250XhQ6ee4h7YI11anA",
  6. "version" : {
  7. "number" : "5.5.1",
  8. "build_hash" : "19c13d0",
  9. "build_date" : "2017-07-18T20:44:24.823Z",
  10. "build_snapshot" : false,
  11. "lucene_version" : "6.6.0"
  12. },
  13. "tagline" : "You Know, for Search"
  14. }
  15. Elastic 返回一个 JSON 对象,包含当前节点、集群、版本等信息。

Index

  1. Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。
  2. 所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。
  3. 下面的命令可以查看当前节点的所有 Index
  4. $ curl -X GET 'http://localhost:9200/_cat/indices?v'
  5. 即使用GET请求该RESTful接口

Document

  1. Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index
  2. Document 使用 JSON 格式表示,下面是一个例子。
  3. {
  4. "user": "张三",
  5. "title": "工程师",
  6. "desc": "数据库管理"
  7. }
  8. 同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

Type

  1. Document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document
  2. 不同的 Type 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。
  3. 这是与关系型数据库的表的一个区别。性质完全不同的数据(比如productslogs)应该存成两个 Index而不是一个 Index 里面的两个 Type(虽然可以做到)。
  4. 下面的命令可以列出每个 Index 所包含的 Type
  5. $ curl 'localhost:9200/_mapping?pretty=true'
  6. 根据规划,Elastic 6.x 版只允许每个 Index 包含一个 Type7.x 版将会彻底移除 Type