索引一些文档-《elasticsearch中文文档帮助手册教程V7.11》

admin 2025-11-04 00:04:49 数据库 来源:ZONE.CI 全球网 0 阅读模式
  • 索引一些文档
    • 批量索引文档

    索引一些文档

    一旦你有一个集群启动并运行了,你就能索引一些数据。Elasticsearch 有多种接收选项,但他们最终都做了同样的事:将 JSON 文档存入Elasticsearch 索引中。

    你可以通过一个简单的 PUT 请求直接执行这种操作,并且在请求体中指定要添加文档的索引、唯一的文档 ID 以及一个或者多个“字段-数值”对:

    1. PUT /customer/_doc/1
    2. {
    3. "name": "John Doe"
    4. }

    如果 customer 索引还不存在,请求将自动创建它,添加一个 ID 为1的文档,并存储和索引名字字段。

    由于这是一个新的文档,这个响应表明这个操作的结果为版本1的文档被创建:

    1. {
    2. "_index" : "customer",
    3. "_type" : "_doc",
    4. "_id" : "1",
    5. "_version" : 1,
    6. "result" : "created",
    7. "_shards" : {
    8. "total" : 2,
    9. "successful" : 2,
    10. "failed" : 0
    11. },
    12. "_seq_no" : 26,
    13. "_primary_term" : 4
    14. }

    新的文档可以从集群中的任一节点立即获得。你可以通过指定它的文档 ID 的 GET 请求来检索它:

    1. GET /customer/_doc/1

    响应表明指定 ID 的文档被找到,并显示了被索引的原始源字段。

    1. {
    2. "_index" : "customer",
    3. "_type" : "_doc",
    4. "_id" : "1",
    5. "_version" : 1,
    6. "_seq_no" : 26,
    7. "_primary_term" : 4,
    8. "found" : true,
    9. "_source" : {
    10. "name": "John Doe"
    11. }
    12. }

    批量索引文档

    如果你有大量文档要索引,你能通过批量 APIbulk API) 来批量提交它们。批量文档操作比单独提交请求显著更快,因为它极简了网络往返。

    最佳的批量数量取决于许多因素:文档的大小和复杂度、索引和搜索的负载以及集群可用资源。一种好的方式是批量处理 1,000 到 5,000 个文档,且总负载在 5 MB 到 15 MB。基于这个,你能尝试找到最佳的方式。

    向 Elasticsearch 导入一些数据,你就能开始搜索和分析:

    1. 下载 accounts.json 示例数据集。这个随机生成的数据集文档表示具体以下信息的用户账户:
    1. {
    2. "account_number": 0,
    3. "balance": 16623,
    4. "firstname": "Bradshaw",
    5. "lastname": "Mckenzie",
    6. "age": 29,
    7. "gender": "F",
    8. "address": "244 Columbus Place",
    9. "employer": "Euron",
    10. "email": "[email protected]",
    11. "city": "Hobucken",
    12. "state": "CO"
    13. }
    1. 使用以下的 _bulk 请求将账户数据索引到银行(bank) 索引中:
    1. curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"
    2. curl "localhost:9200/_cat/indices?v=true"

    响应表明 1,000 个文档被成功索引:

    1. health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
    2. yellow open bank l7sSYV2cQXmu6_4rJWVIww 5 1 1000 0 128.6kb 128.6kb

    原文链接

    评论:0   参与:  8