一文读懂 Java操作Elasticsearch( 五 )

GetIndexRequestGetIndexRequest request = new GetIndexRequest("twitter"); //<1> index 名称

<1> index 名称
 
4.3.3 可选参数
  • 索引存在 API 还接受以下可选参数,通过 : GetIndexRequest
request.local(false);//<1> 是返回本地信息还是从主节点检索状态request.humanReadable(true); //<2> 返回结果为适合人类的格式request.includeDefaults(false); //<3> 是否返回每个索引的所有默认设置request.indicesOptions(indicesOptions); //<4> 控制如何解析不可用的索引以及如何展开通配符表达式
<1> 是返回本地信息还是从主节点检索状态<2> 返回结果为适合人类的格式<3> 是否返回每个索引的所有默认设置<4> 控制如何解析不可用的索引以及如何展开通配符表达式
 
4.3.4 同步执行
  • 以下列方式执行 时,客户端将等待 返回 ,然后再继续执行代码: GetIndexRequest boolean
boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
与其他同步的相同
 
4.3.5 异步执行-
  • 也可以以异步方式执行 ,以便客户端可以直接返回 。用户需要指定如何通过将请求和侦听器传递到异步索引存在的方法来处理响应或潜在故障: GetIndexRequest
client.indices().existsAsync(request, RequestOptions.DEFAULT, listener);//<1>执行完成时要执行和要使用的 GetIndexRequestActionListener
<1>执行完成时要执行和要使用的 GetIndexRequest ActionListener异步的处理逻辑与其他异步的相同,都是实现 ActionListener 的方法
 
4.3.6 响应
  • 响应是一个值,指示索引(或索引)是否存在 。 boolean
5. 文档 Api (Document APIs) 
5.1 索引 API (Index Api) 
5.1.1 案例:
  • 添加记录
private static void test02() {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1",9200)));//创建请求,参数index名称IndexRequest request = new IndexRequest("student");//请求的模式,CREATE: 创建模式,如果已经存在则报错Index:存在则不再创建,也不报错request.opType(DocWriteRequest.OpType.INDEX);String json = "{n" +""id": 12,n" +""name": "admin",n" +""content": "步的处理逻辑与其他异步的相同,都是实现ActionListener 的方法"n" +"}";request.id("1").source(json,XContentType.JSON);IndexResponse indexResponse = null;try {//调用 index 方法indexResponse = client.index(request, RequestOptions.DEFAULT);System.out.println(indexResponse.getVersion());System.out.println(indexResponse.getIndex());System.out.println(indexResponse.getId());System.out.println(indexResponse.status());} catch (ElasticsearchStatusException | IOException e) {e.printStackTrace();}} 
5.1.2 索引请求
  • 需要以下参数: IndexRequest
//创建请求,参数index名称IndexRequest request = new IndexRequest("student"); //<1> index 名称String json = "{n" +""id": 12,n" +""name": "admin",n" +""content": "步的处理逻辑与其他异步的相同,都是实现ActionListener 的方法"n" +"}";request.id("1") // <2> 指定文档 ID.source(json,XContentType.JSON // <3> 指定参数类型,json);
<1> index 名称指数
<2> 请求的文档 ID
<3> 指定参数类型,json

提供文档源
  • 除了上面显示的示例之外,还可以以不同的方式提供文档源: String
Map<String, Object> jsonMap = new HashMap<>();jsonMap.put("id", 1);jsonMap.put("name", "Admin);jsonMap.put("content", "步的处理逻辑与其他异步的相同");IndexRequest indexRequest = new IndexRequest("student").id("1").source(jsonMap);
文档源作为 自动转换为 JSON 格式的 Map
XContentBuilder builder = XContentFactory.jsonBuilder();builder.startObject();{builder.field("id", 1);builder.field("name", "admin);builder.field("content", "trying out Elasticsearch");}builder.endObject();IndexRequest indexRequest = new IndexRequest("student").id("1").source(builder);


推荐阅读