Elasticsearch8创建和使用Api-key

1、在ES服务器创建:

curl --cacert elasticsearch-8.10.2/config/certs/http_ca.crt -u <username>:<password> -k -X POST "https://localhost:9200/_security/api_key" -H 'Content-Type: application/json' -d '{

  "name": "my-api-key",

  "expiration": "1d", // 设置 API Key 的过期时间,例如 "1d" 表示一天

  "realm_name": "native1"  // 指定用于创建 API Key 的认证域

}'

在上述命令中,my-api-key 是为 API Key 指定的名称。expiration 参数用于设置 API Key 的过期时间,1d 表示一天,可以根据需要进行调整。realm_name 参数指定用于创建 API Key 的认证域。

2、在Kibana控制台创建:

curl -XPOST 'https://localhost:9200/_security/api_key' -H 'Content-Type: application/json' -d '

{

"name": "ES-api-key","

expiration": "1d"

}'

创建 API Key 成功后,会得到一个包含 API Key 值的 JSON 对象,类似于:

{

  "id": "<api-key-id>",

  "name": "my-api-key",

  "expiration": "2023-11-22T12:00:00Z",

  "api_key": "<api-key-value>"

}

使用API Key:

curl -k -H "Authorization: ApiKey NFRjanBZd0JEN1hua0x6d1MtTzc6cFQtbHk0Z25TYXF3eHRjSzhKR0pRdw==" https://localhost:9200/_cluster/health

​

官方教程:
Create API key API | Elasticsearch Guide [8.11] | Elastic

Elasticsearch:创建 API key 接口访问 Elasticsearch_elasticsearch apikey-CSDN博客

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个使用Elasticsearch Java API进行分类统计聚合的例子: 假设我们有一个名为“products”的索引,其中包含产品名称和价格字段。我们想要按价格范围对产品进行分类统计,以便了解哪些价格区间的产品最受欢迎。 首先,我们需要创建一个聚合对象: ``` AggregationBuilder aggregation = AggregationBuilders .range("price_ranges") .field("price") .addUnboundedTo(50) .addRange(50, 100) .addRange(100, 200) .addRange(200, 500) .addUnboundedFrom(500); ``` 这个聚合对象将按价格字段对文档进行分类统计,并将它们分成五个范围:小于等于50、50到100、100到200、200到500和大于等于500。现在,我们需要将这个聚合对象添加到我们的搜索请求中: ``` SearchRequest searchRequest = new SearchRequest("products"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.aggregation(aggregation); searchRequest.source(searchSourceBuilder); ``` 这将创建一个`SearchRequest`对象,将聚合对象添加到`SearchSourceBuilder`中,并将其设置为`SearchRequest`的搜索源。现在,我们可以执行搜索请求并从结果中提取聚合信息: ``` SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); Range rangeAgg = searchResponse.getAggregations().get("price_ranges"); for (Range.Bucket bucket : rangeAgg.getBuckets()) { String key = bucket.getKeyAsString(); long docCount = bucket.getDocCount(); System.out.println("Range: " + key + ", Count: " + docCount); } ``` 这会执行搜索请求,并从响应中提取名为“price_ranges”的聚合对象。我们可以遍历每个范围桶,并提取范围键和文档计数。最后,我们可以将这些信息输出到控制台或将它们用于其他目的。 希望这个例子能够帮助你理解如何使用Elasticsearch Java API进行分类统计聚合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值