ES上手之索引一些文档

当你搭好一个集群后,你就可以索引一些数据了。Elasticsearch有多种数据撷取方式,但殊途同归:将JSON文档放入Elasticsearch索引中。

你可以直接用一个简单的PUT请求索引文档,请求指定了索引名、文档唯一ID,请求体中包含一个或多个field:value键值对,如:

PUT /customer/_doc/1
{
  "name": "John Doe"
}

这个请求会自动创建名为customer的索引如果它不存在,并会新增一个ID为1的文档,存储并索引name字段。

由于这是一个新增的文档,返回值显示本次操作结果为创建了该文档的version1版本:

{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 26,
  "_primary_term" : 4
}

新增的文档会立即对集群中的所有节点可用。你可以GET请求指定文档ID检索到它:

GET /customer/_doc/1

返回结果表明找到了指定ID的文档并展示了已索引的原始源字段。

{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 26,
  "_primary_term" : 4,
  "found" : true,
  "_source" : {
    "name": "John Doe"
  }
}

批量索引文档

如果你需要索引大量文档,则可以用bulk API批量操作。使用批量接口处理文档比单独提交请求快得多,因为它可以最大程度地减少网络I/O次数。

最佳批量处理大小取决于许多因素:文档大小和复杂性,索引和搜索负载以及群集可用的资源。你可以从单次批量处理1000至5000个文档,总负载在5MB至15MB之间开始尝试,然后不断调整以达到最优性能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容