Elasticsearch之添加记录操作,核心代码如下:
public static void main(String[] args) throws Exception {
String url ="http://192.168.1.111:9200/";
//一、添加单个记录
UserVO user = new UserVO("庞涓", "地址不详", 1.3, true,39, "2012-09-08");
System.out.println(JSONObject.fromObject(user));
//IndexName/type/id
doPost(url+"index_users3/userinfo/002",JSONObject.fromObject(user) );
//二、批量添加记录
/**
The REST API endpoint is /_bulk, and it expects the following JSON structure:
action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
....
action_and_meta_data\n
optional_source\n
NOTE: the final line of data must end with a newline character \n.
*/
UserVO user1 = new UserVO("庞涓01", "地址不详", 1.3, true,39, "2012-09-08");
UserVO user2 = new UserVO("庞涓02", "地址不详", 1.3, true,39, "2012-09-08");
List<UserVO> list = new ArrayList<UserVO>();
list.add(user1);
list.add(user2);
doPost(url+"index_users3/userinfo/_bulk",list);
}
----------------------------------------------------------------------------------------------------
VO类
public class UserVO {
private String name;
private String address;
private double sal;
private boolean sex;
private int age ;
private String createDate;
}
公共请求方法
/**
* post请求
*
* @param url
* @param json
* @return
*/
public static JSONObject doPost(String url, JSONObject json) {
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
JSONObject response = null;
try {
StringEntity s = new StringEntity(json.toString(),HTTP.UTF_8);
s.setContentEncoding("UTF-8");
s.setContentType("application/json;charset=UTF-8");
// 发送json数据需要设置contentType
post.setEntity(s);
HttpResponse res = client.execute(post);
if (res.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = res.getEntity();
String result = EntityUtils.toString(entity,"UTF-8");// 返回json格式:
System.out.println(result);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return response;
}
private static void doPost(String url, List<UserVO> list) {
StringBuffer sb = new StringBuffer();
for (UserVO userVO : list) {
sb.append("{\"create\" :{ \"_index\" : \"test\"" ).append("}}\n");
sb.append(JSONObject.fromObject(userVO)).append("\n");
}
System.out.println(sb);
doPost(url, sb.toString());
}
相关推荐
在Java开发中,我们通常会创建一个专门的工具类来处理Elasticsearch相关的操作,以便更好地管理和控制数据。 在描述中提到,这个工具类支持通过标签注释实体类。这意味着开发者可以使用特定的注解(如@Document、@...
Elasticsearch(简称 ES)是一种基于 Lucene 的开源全文搜索引擎,被广泛应用于大数据分析、日志收集、实时搜索等领域。它的设计目标是分布式、可扩展、高可用且易用,支持RESTful API,使得与ES交互变得简单。 **...
Java API 是 Elasticsearch 提供的客户端库,允许开发者在 Java 应用中直接操作 Elasticsearch。主要包括以下组件: - **TransportClient**:通过 TCP 连接直接与 Elasticsearch 节点通信,适用于跨网络访问。 - **...
在本项目中,我们将探讨如何使用SpringBoot框架与Elasticsearch 6.3.0集成,实现对Elasticsearch数据库的高效操作。SpringBoot简化了配置过程,使得开发者能够快速地构建可部署的Java应用。而Elasticsearch则是一个...
4. **文档操作**:Elasticsearch中的文档相当于关系数据库中的记录。可以使用`Index`, `Get`, `Update`, `Delete`等API对文档进行操作。在SpringBoot中,这些操作可以封装在Service层,通过Repository接口的CRUD方法...
Elasticsearch是一个开源的全文搜索引擎...Elasticsearch的强大之处在于它的灵活性和可扩展性,适用于日志分析、实时监控、全文搜索等多种场景。了解并熟练掌握Elasticsearch的使用,将极大地提升数据处理和分析效率。
结合给定的标签"elasticsearch"和"java",我们可以推断这篇记录可能与使用Java API操作Elasticsearch有关。 首先,搜索优化是Elasticsearch中至关重要的一个环节。在进行查询时,不是所有字段都需要参与评分(`...
4. **文档(Document)**:文档是存储在Elasticsearch中的JSON对象,是索引中的基本数据单元,类似于数据库中的记录。 5. **分片(Shard)**:为了实现水平扩展,Elasticsearch将每个索引划分为多个分片。分片可以分布...
本资料“elasticsearch-2016-8最新可用java代码”是针对2016年8月版本的Elasticsearch,提供了使用Java API进行操作的示例代码,对于理解如何在Java应用中集成和操作Elasticsearch具有重要意义。 1. **Elastic...
- **倒排索引**: ElasticSearch 的基础技术之一,用于快速检索文档。每个不重复的词对应一个包含该词的所有文档 ID 列表。 #### 三、操作 ElasticSearch **3.1 Restful 风格** - **基本概念**: 定义了一种基于 ...
同时,将插件文件放置在Elasticsearch的`plugins`目录下,并执行重启操作使插件生效。`plugin-security.policy`和`plugin-descriptor.properties`是Elasticsearch插件的安全策略和元数据文件,它们定义了插件的权限...
"elasticsearch-analysis-ik-7.6.0" 是IK分词器的一个特定版本,专为Elasticsearch 7.6.0设计,适用于Windows操作系统。 **IK分词器介绍** IK分词器由Java编写,具有良好的可扩展性和高性能。它能够对中文文本进行...
ESAPI (Enterprise Security API) 是一个开源项目,由OWASP(Open Web Application Security Project)组织维护,旨在提供一套全面的、统一的安全编程接口,帮助Java开发者编写更安全的应用程序。这个压缩包“esapi-...
- RESTful风格接口,通过HTTP请求操作Elasticsearch。 **2.4 映射与分析器** - **映射(Mapping):** - 定义索引中文档的结构。 - 动态映射:根据文档内容自动创建映射。 - 显示映射:手动定义字段类型。 - *...
- **基于Lucene**: Lucene是一个高性能、全功能的文本搜索引擎库,ElasticSearch在其基础上增加了分布式处理的能力。 - **RESTful Web接口**: 提供了一个简单的HTTP API接口,使得开发者可以通过发送HTTP请求来完成...
查询(Query)是Elasticsearch中的核心操作之一,用于在索引中搜索文档。查询可以基于多种类型,例如URI查询和请求正文搜索,还包括短语匹配、组合查询、提高权重、分页、高亮显示等高级功能。 Elasticsearch的集群...
ElasticSearch运行在Java虚拟机(JVM)之上,因此JVM配置非常重要。主要关注点包括堆内存大小、垃圾回收策略等。 #### 五、源码分析 **6.1. 使用Guice进行依赖注入与模块化系统** ElasticSearch使用Guice框架来管理...