上云无忧 > 文档中心 > 百度智能云Elasticsearch导入数据并搜索
Elasticsearch
百度智能云Elasticsearch导入数据并搜索

文档简介:
前提条件: 开通百度智能云Elasticsearch服务(参考创建集群)且可访问Elasticsearch集群(参考访问Elasticsearch服务)后,可以通过附赠的kibana节点访问Elasticsearch集群,然后可以创建索引、导入数据和搜索数据。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

前提条件

开通百度智能云Elasticsearch服务(参考创建集群)且可访问Elasticsearch集群(参考访问Elasticsearch服务)后,可以通过附赠的kibana节点访问Elasticsearch集群,然后可以创建索引、导入数据和搜索数据。

创建索引

在导入数据之前,可以评估shard和创建索引,以下示例创建一个名称为index_name的索引。

PUT index_name
{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  }
}

其中,number_of_shards指主分片数,number_of_replicas指每个主分片有多少个副本分片数。Elasticsearch 7.0以下版本默认创建5个主分片和1个副本分片,Elasticsearch 7.0及以上版本默认创建1个主分片和1个副本分片。主分片数只能在索引创建前指定,且索引创建后不能动态修改,只能通过reindex或split等方式达到修改目的,副本分片数可以动态修改。

创建成功,返回如下结果。

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "index_name"
}

返回结果各个字段的含义如下所示。

返回字段 含义
acknowledged 索引在集群中是否创建成功
shards_acknowledged 每个分片组在超时之前是否激活了所需数量的分片
index 索引名称

注:返回值中acknowledged或者shards_acknowledged为false时,索引创建操作仍然可能成功,这两个值只是表示操作是否在超时之前完成。假设acknowledged为false,新创建的索引更新集群状态时超时,创建索引操作仍然可能会在之后执行成功。假设shards_acknowledged为false,新创建的索引成功更新集群状态,但激活所需数量的分片超时,默认只启动主分片。

导入数据

导入单条数据

以下示例创建单个文档并导入数据。

PUT index_name/_doc/1
{
  "name": "Amber Adams",
  "age": 32
}

导入数据成功,返回如下结果。

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

返回结果各个字段的含义如下所示。

返回字段 含义
index 索引名称
_type 文档类型
_id 文档唯一标识符
_version 文档版本,每次更新文档,版本都会增加
result 操作结果
_shards 被操作的分片总数量、成功数量、失败数量
_seq_no 文档序列号,序列号用于确保旧版本文档不会覆盖新版本
_primary_term 主项

可以使用如下命令查询数据来进行验证。

GET index_name/_search
{
"query": { "match_all": {} }
}

导入多条数据

以下示例使用_bulk API创建多个文档并导入数据。

POST _bulk
{"index":{"_index": "index_name", "_id": 2}}
{"name": "Fulton Rich","age": 40}
{"index":{"_index": "index_name", "_id": 3}}
{"name": "Virginia Ayala", "age": 12}
{"index":{"_index": "index_name", "_id": 4}}
{"name": "Mcgee Mooney", "age": 23}
{"index":{"_index": "index_name", "_id": 5}}
{"name": "Burton Meyers", "age": 60}

可以使用如下命令查询插入的数据来进行验证。

GET index_name/_search
{
"query": { "match_all": {} }
}

搜索数据

向集群导入数据之后,可以进行数据搜索,比如查询索引、全文搜索、按条件搜索等。

查询索引

如下命令查询集群的所有索引。

GET _cat/indices?v

查询结果如下所示。

health status index                uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green open   index_name           GKL71ejiT0CyqJZgVgkMjA   3   1          5            0     11.2kb         11.2kb

查询结果各个字段的含义如下所示。

返回字段 含义
health 索引健康状态
status 索引的开启状态
index 索引名称
uuid 索引uuid
pri 索引主分片数
rep 索引副本分片数量
docs.count 索引中文档总数
docs.deleted 索引中删除状态的文档
store.size 主分片+副本分片的大小
pri.store.size 主分片的大小

全文搜索

如下命令搜索name包含Ayala的文档数据。

GET index_name/_search
{
  "query": {
    "match": {
      "name": "Ayala"
    }
  }
}

搜索结果如下所示。

{
  "took" : 10,
  "timed_out" : false,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 0.9808292,
    "hits" : [
      {
        "_index" : "index_name",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 0.9808292,
        "_source" : {
          "name" : "Virginia Ayala",
          "age" : 12
        }
      }
    ]
  }
}

搜索结果各个字段的含义如下所示。

返回字段 含义
took 执行搜索耗时,单位为毫秒
time_out 搜索是否超时
_shards 多少分片被搜索,成功多少,跳过多少,失败多少
hits 搜索结果展示
hits.total 匹配条件的文档总数
hits.max_score 最大匹配得分
hits._score 返回文档的匹配得分(得分越高,匹配程度越高,越靠前)
hits.hits 返回结果展示

按条件搜索

如下命令搜索age在20-30岁之间(闭区间)的文档数据。

GET index_name/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 20,
        "lte": 30
      }
    }
  }
}

搜索结果如下所示。

{
  "took" : 18,
  "timed_out" : false,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "index_name",
        "_type" : "_doc",
        "_id" : "4",
        "_score" : 1.0,
        "_source" : {
          "name" : "Mcgee Mooney",
          "age" : 23
        }
      }
    ]
  }
}

搜索结果各个字段的含义同上。

相似文档
  • 1、登录百度智能云并选择Elasticsearch服务 如果您还没有百度智能云的账号,请首先通过这个地址进行注册 http://bce.baidu.com/index.html 然后选择Elasticsearch服务。
  • 北京 bj; 保定 bd; 苏州 su; 广州 gz; 香港 hkg; 金融云武汉专区 fwh; 新加坡 sin。
  • 百度智能云 Elasticsearch 提供集群重启功能,支持用户通过控制台重启 Elasticsearch 实例。 前提条件: 对于集群重启功能,百度智能云 Elasticsearch 提供以下操作建议:
  • 如果您不再需要当前集群,可以进行删除集群操作。 注意:删除集群后数据将全部丢失且不可恢复,需要提前备份数据! 具体删除集群步骤如下: 进入集群详情页,鼠标移动到更多操作出现删除集群的按钮,点击删除集群。
  • 重置管理员 superuser 的密码,进入集群详情页面,点击 "重置密码" 标签,输入新的管理员密码,再次输入确认,并输入短信验证码后确认即可。 注意,也可以通过百度 Elasticsearch 的权限管理 API 完成密码重置,可查阅用户手册的 "权限管理" 模块。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部