ElasticSearch入门学习-基础示例(1)

  

基于ElasticSearch-6.1.2


关于文档元数据


参考官方权威指南,文档元数据

一个文档有三个必须的元数据元素:


<李>

<强> _index :表示文档存放在哪个,<强>指数强,中,

<李>

<强> _type :文档表示的对象类型;

<李>

<强> _id :文档的唯一标识;


1。索引新文档


通过使用,<强>指数,API,使得文档可以被,<>强索引,——即存储文档,以及使得文档可以被搜索。


1.1使用自定义的ID


以下为索引一篇博客的例子,其中:指数为,<强>网站强,类型为,<强>博客强,自定义的ID为,<强> 123 ,


 PUT /网站/博客/123,HTTP/1.1
  {,,,“date":,“2014/01/01",,
  ,,,“text":,“Still  trying 却;能够…“,,
  ,,,“title":,“My  second  blog  entry"} 


ES的响应体如下:


 HTTP/1.1, 201年创建的
  地点:/网站/博客/123
  内容编码:gzip
  内容长度:143
  内容类型:application/json; charset=utf - 8
  
  {,,,“_id":,“123,,,
  ,,,“_index":,“website",,
  ,,,“_primary_term",, 1,,
  ,,,“_seq_no":, 0,,
  ,,,“_shards":, {,,,,,,,“failed":, 0,,
  ,,,,,,,“successful",, 1,,
  ,,,,,,,“total": 2
  ,,,},,
  ,,,“_type":,“blog",,
  ,,,“_version",, 1,,
  ,,,“result":,“created"
  }


在ES中,每个文档都会有个版本号(响应中的,<强> _version ,字段),每次修改和删除,<强> _version ,都会自增。


1.2使用西文自动生成的ID


采用后提交索引请求:


 POST /网站/博客/,HTTP/1.1
  
  {,,,“date":,“2014/01/01",,
  ,,,“text":,“Still  trying 却;能够…“,,
  ,,,“title":,“My  second  blog  entry"
  }


如下为ES的响应:


 HTTP/1.1, 201年创建的
  地点:/网站/博客/UALcG2EBr-dnzPFB0zH1
  内容编码:gzip
  内容长度:165
  内容类型:application/json; charset=utf - 8
  
  {,,,“_id":,“UALcG2EBr-dnzPFB0zH1",,
  ,,,“_index":,“website",,
  ,,,“_primary_term",, 1,,
  ,,,“_seq_no":, 0,,
  ,,,“_shards":, {,,,,,,,“failed":, 0,,
  ,,,,,,,“successful",, 1,,
  ,,,,,,,“total": 2
  ,,,},,
  ,,,“_type":,“blog",,
  ,,,“_version",, 1,,
  ,,,“result":,“created"} 


除了,<强> _id ,是ES自动生成的之外,其他响应字段都和上面的类似。


自动生成的ID是URL-safe,基于Base64编码且长度为20个字符的GUID字符串。这些GUID字符串由可修改的FlakeID模式生成,这种模式允许多个节点并行生成唯一ID,且互相之间的冲突概率几乎为零。


2。检索文档


2.1检索指定ID的文档


查询ID为123的博客的请求:


 GET /网站/博客/123 ? pretty  HTTP/1.1 

请求后面的,<强>很,参数使得ES在输出时调用,<强> prety-print ,功能,使得JSON响应体更加可读。


ES响应如下:


 HTTP/1.1, 200,好吧
  内容编码:gzip
  内容长度:173
  内容类型:application/json; charset=utf - 8
  
  {,,,“_id":,“123,,,
  ,,,“_index":,“website",,
  ,,,“_source":, {,,,,,,,“date":,“2014/01/01",,
  ,,,,,,,“text":,“Still  trying 却;能够…“,,
  ,,,,,,,“title":,“My  second  blog  entry"
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

ElasticSearch入门学习-基础示例(1)