RestHighLevelClient 创建Index
时间: 2023-11-08 07:55:21 浏览: 84
你可以使用 RestHighLevelClient 来创建 Elasticsearch 索引。以下是一个示例代码:
```java
import org.apache.http.HttpHost;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.XContentType;
import java.io.IOException;
public class IndexCreationExample {
public static void main(String[] args) throws IOException {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
CreateIndexRequest request = new CreateIndexRequest("your_index_name");
request.settings(Settings.builder()
.put("index.number_of_shards", 1)
.put("index.number_of_replicas", 1));
// 设置索引映射
String mapping = """
{
"properties": {
"title": {
"type": "text"
},
"content": {
"type": "text"
}
}
}
""";
request.mapping(mapping, XContentType.JSON);
CreateIndexResponse response = client.indices().create(request);
if (response.isAcknowledged()) {
System.out.println("索引创建成功");
} else {
System.out.println("索引创建失败");
}
client.close();
}
}
```
你需要将 `localhost` 和 `9200` 替换为你的 Elasticsearch 主机和端口,`"your_index_name"` 替换为你想要创建的索引的名称。在 `request.mapping()` 中设置索引的映射,上述示例中的映射包含了 `title` 和 `content` 字段,你可以根据你的需求进行调整。
你可以根据实际情况修改其他设置,比如 `index.number_of_shards` 和 `index.number_of_replicas`,然后调用 `client.indices().create(request)` 方法来创建索引。创建成功后,`response.isAcknowledged()` 返回 true。
记得在使用完 RestHighLevelClient 后关闭客户端 `client.close()`。希望这能对你有帮助!
阅读全文