package demo;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.CreateIndexResponse;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse;
import java.io.IOException;
public class TestElasticSearch2 {
public static void main(String[] args) throws IOException {
//创建客户端对象
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http"))
);
//查询索引
GetIndexRequest request = new GetIndexRequest("user");
//发送请求,获取响应
GetIndexResponse response = client.indices().get(request, RequestOptions.DEFAULT);
//响应状态
System.out.println("别名:"+response.getAliases());
System.out.println("映射:"+response.getMappings());
System.out.println("设置:"+response.getSettings());
//关闭客户端连接
client.close();
}
}
ElactisSearch操作索引.zip
需积分: 0 49 浏览量
更新于2023-01-06
收藏 11KB ZIP 举报
**Elasticsearch 操作索引详解**
Elasticsearch(简称ES)是一款开源的全文搜索引擎,基于Lucene构建,提供实时、分布式、可扩展的数据搜索和分析能力。在处理大规模数据时,Elasticsearch展现了强大的性能和灵活性。本教程将深入探讨如何在Elasticsearch中进行索引的操作。
### 一、索引的概念
在Elasticsearch中,索引(Index)是存储和检索文档的地方,类似于关系型数据库中的表。每个索引都有一个唯一的名字,并且可以包含多个类型(尽管在Elasticsearch 7.0之后已移除类型概念,现在每个索引默认只有一个类型,即"_doc")。
### 二、创建索引
创建索引通常通过`PUT`请求完成,指定索引名作为URL路径。例如,创建一个名为`my_index`的索引:
```json
PUT /my_index
```
如果索引已经存在,这将会更新其设置。可以添加设置参数,如分片数和副本数:
```json
PUT /my_index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
```
### 三、索引文档
要将文档添加到索引,使用`POST`或`PUT`请求到`/index_name/_doc`,文档内容放在请求体中。例如,创建一个用户文档:
```json
PUT /my_index/_doc/1
{
"name": "张三",
"age": 30,
"city": "北京"
}
```
这里,`_doc`是默认的文档类型,`1`是文档ID。
### 四、查询文档
使用`GET`请求可以从索引中检索文档:
```json
GET /my_index/_doc/1
```
### 五、更新文档
Elasticsearch通过替换整个文档来实现更新,因为它是无模式的。例如,增加用户的年龄:
```json
PUT /my_index/_doc/1
{
"name": "张三",
"age": 31,
"city": "北京"
}
```
### 六、删除文档
使用`DELETE`请求删除指定ID的文档:
```json
DELETE /my_index/_doc/1
```
### 七、批量操作
对于大量数据,可以使用`_bulk`接口进行批量操作,包括创建、更新和删除文档。示例:
```json
POST /my_index/_bulk
{ "index": {} }
{ "name": "李四", "age": 28, "city": "上海" }
{ "update": { "_id": "2" } }
{ "doc": { "age": 35 } }
{ "delete": { "_id": "3" } }
```
### 八、映射(Mapping)
映射定义了字段的数据类型,对搜索和分析有直接影响。创建索引时可以指定映射,也可以后续添加:
```json
PUT /my_index
{
"mappings": {
"properties": {
"name": { "type": "text" },
"age": { "type": "integer" },
"city": { "type": "keyword" }
}
}
}
```
### 九、搜索操作
Elasticsearch提供了丰富的查询和过滤语句,如match、term、range等。以下是一个简单的全文搜索示例:
```json
GET /my_index/_search
{
"query": {
"match": {
"name": "张三"
}
}
}
```
### 十、聚合分析
Elasticsearch支持聚合分析,可以用于统计、分组等。例如,按城市分组并计算数量:
```json
GET /my_index/_search
{
"aggregations": {
"cities": {
"terms": {
"field": "city.keyword"
}
}
}
}
```
以上内容涵盖了Elasticsearch中关于索引的基本操作,包括创建、删除、更新、查询、映射以及聚合分析等关键知识点。在实际应用中,还需要结合集群管理、性能优化、数据迁移等多方面进行深入学习。
Java秦老师
- 粉丝: 8939
- 资源: 90
最新资源
- springboot项目餐厅点餐系统.zip
- 人工智能资料地址集合.zip
- springboot项目毕业生信息招聘平台.zip
- springboot网上宠物用品商城系统(源码+sql+论文报告).zip
- springboot网上酒类商城系统(源码+论文报告).zip
- SpringBoot网上水果蔬菜商城系统(源码+sql).zip
- 鲸鱼优化算法WOA优化卷积神经网络CNN的学习率和隐含层神经元个数做时间序列的拟合预测建模,数据要求为单列的时间序列数据 程序内注释详细直接替数据就可以使用 程序语言为matlab 程序直接运行
- python基于tensorflow的人脸识别系统设计与实现源码+数据集+模型(高分毕设)
- springboot汽车配件管理系统(源码+sql+论文报告).zip
- springboot通用版商城项目(源码+sql).zip
- springboot生活分享共享平台(源码+论文).zip
- PHPMVC学习之ThinkPHP(下)视频教程最新版本
- springboot民宿管理平台.zip
- springboot美食菜谱分享平台优化版(源码+sql+论文报告).zip
- springboot美食生活分享平台(源码+论文报告).zip
- SpringBoot美容院预约管理系统(源码+sql).zip