创建索引的第一步工作,是将你要创建索引的对象转化为Json字符串。
生成Json的方法很多,最直接的是手写,将你的实体转化为Json:
- String json = "{" +
- ""user":"kimchy"," +
- ""postDate":"2013-01-30"," +
- ""message":"trying out Elastic Search"," +
- "}";
第二种,是使用Map方式:
- Map<String, Object> json = new HashMap<String, Object>();
- json.put("user","kimchy");
- json.put("postDate",new Date());
- json.put("message","trying out Elastic Search");
第三种,是使用Elasticsearch提供的帮助类
- import static org.elasticsearch.common.xcontent.XContentFactory.*;
- XContentBuilder builder = jsonBuilder()
- .startObject()
- .field("user", "kimchy")
- .field("postDate", new Date())
- .field("message", "trying out Elastic Search")
- .endObject();
- String json = builder.string();
第四种是使用jackson技术,你可以导入jackson的jar包,如果是maven管理的项目,则直接在pom.xml中添加:
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.1.3</version>
- </dependency>
然后:
- import com.fasterxml.jackson.databind.*;
- // instance a json mapper
- ObjectMapper mapper = new ObjectMapper(); // create once, reuse
- // generate json
- String json = mapper.writeValueAsString(yourbeaninstance);
接下来便可以创建索引了:
- IndexResponse response = client.prepareIndex("twitter", "tweet")
- .setSource(json)
- .execute()
- .actionGet();
client.prepareIndex的参数可以是0个(其后必须使用index(String)和type(String)方法),两个(client.prepareIndex(index,type))和三个(client.prepareIndex(index,type,id)),其中,index类似于数据库名,type类似于表名,而id则是每条记录的惟一编码,通常情况下,我们会把实体的惟一编码作为ES的ID,当然,不给的时候,由ES自动生成。
response是Elasticsearch创建完成索引后,回馈给你的实体,你可以从这个实体中获得一些有价值的信息:
- // 索引名称
- String _index = response.index();
- // type名称
- String _type = response.type();
- // 文档ID
- String _id = response.id();
- // 索引版本
- long _version = response.version();
TransportClient client = null;
public ESClientTest() {
Settings settings = ImmutableSettings.settingsBuilder()
.put("client.transport.sniff", true).build();
client = new TransportClient(settings);
}
public void connect() {
client.addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
}
public void close(){
client.close();
}
public void index(){
try {
XContentBuilder doc = XContentFactory.jsonBuilder()
.startObject()
.field("title", "this")
.field("description", "descript")
.field("price", 100)
.field("onSale", true)
.field("type", 1)
.field("createDate", new Date())
.endObject();
client.prepareIndex("productindex","productindex","1").setSource(doc).execute().actionGet();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
ESClientTest es = new ESClientTest();
es.index();
es.close();
}
其中productIndex为索引库名,一个es集群中可以有多个索引库。productType为索引类型,是用来区分同索引库下不同类型的数据的,一个索引库下可以有多个索引类型。
elasticsearch java API --------删除索引数据
public void delbyquery(){
QueryBuilder query = QueryBuilders.fieldQuery("type", "1");
client.prepareDeleteByQuery("productindex").setQuery(query).execute().actionGet();
}
public void delbyid(){
DeleteResponse response = client.prepareDelete("productindex", "productindex", "1")
.execute()
.actionGet();
}
相关推荐
标签《ES Java API 中文文档》强调了文档的内容属性,它属于ElasticSearch的一个重要组成部分,即用Java语言进行数据交互和操作的应用程序接口部分。 从部分内容中可以提取出以下知识点: 1. **Transport Client**...
Java API是Elasticsearch官方提供的与Elasticsearch服务器进行交互的主要工具,它使得开发者能够用Java语言便捷地进行索引、搜索、聚合等多种操作。 ### 一、Elasticsearch核心概念 1. **节点(Node)**: Elastic...
3. **数据导入**:使用 Elasticsearch 的 Bulk API 或者 Spring Data Elasticsearch 进行批量数据导入。 4. **分词器选择**:选择合适的分词器,如 IK 分词器,为中文文本提供精确的分词服务。 5. **查询接口设计**...
**Elasticsearch Java API**是Elasticsearch官方提供的用于与Elasticsearch服务器进行交互的Java客户端库。在Java应用程序中,我们通常会使用这个API来创建、查询、更新和删除索引中的数据。Elasticsearch 2.3版本的...
开发者可以从中学习如何设置 Elasticsearch 配置,以及如何使用 Java API 进行数据操作。 总的来说,Elasticsearch 结合 Spring Boot 和 Java 提供了一个高效、灵活的解决方案,用于处理大规模数据的搜索和分析任务...
在博客《Elasticsearch Java API详解》中,作者分享了一个使用Java API操作Elasticsearch的实例,包括如何创建索引、插入数据、执行搜索和聚合。通过这个实例,你可以深入理解Elasticsearch Java API的使用方法和...
Elasticsearch是一个高度可扩展的开源全文搜索引擎,广泛应用于数据搜索、分析和实时监控场景。在Windows平台上,Elasticsearch的最新版本为8.1.1,专为64位操作系统设计。这个压缩包“elasticsearch-8.1.1-windows-...
Elasticsearch 是一款强大的开源搜索引擎,广泛应用于数据索引、搜索、分析等场景。为了更好地处理中文文本,我们需要使用适合的分词器,其中IK(Intelligent Chinese)分词器是针对Elasticsearch的热门选择。...
配置完成后,可以在 Elasticsearch 的 REST API 或客户端中使用 IK 分词器进行索引和搜索操作。 总的来说,Elasticsearch Analysis IK 8.4.1 是一个强大且成熟的中文分词解决方案,对于需要处理大量中文数据的 ...
安装这个插件可以使得Elasticsearch更好地理解和处理中文词汇,从而提升中文数据的索引和查询性能。 在提供的压缩包文件中,我们看到了以下文件: 1. httpclient-4.5.2.jar:这是Apache HttpClient库的一个版本,...
5. RESTful API:Elasticsearch 使用 RESTful 风格的 API 进行操作,使得与各种编程语言的集成变得简单,通过 HTTP 协议即可进行数据的增删改查和搜索操作。 6. 插件支持:Elasticsearch 社区提供了丰富的插件,...
总结,Elasticsearch的Java API为开发者提供了丰富的接口,方便进行索引管理、数据存取、高级搜索和集群监控等任务。离线下载的Java API文档是开发者不可或缺的学习和参考资源,它详细解释了每个方法的使用和示例,...
这个插件旨在提供更强大的中文分词能力,以提高Elasticsearch在处理中文数据时的搜索准确性和效率。 Elasticsearch是一款开源的全文搜索引擎,广泛应用于数据分析和日志监控等领域。其核心功能包括索引、搜索、分析...
在 Java 应用程序中使用 Elasticsearch,开发者可以利用 Java API 来执行索引、搜索、聚合、更新和删除等操作。这些操作使得 Elasticsearch 成为大数据分析、日志处理和实时搜索等场景的理想选择。 **1. 索引操作**...
总结, 本文详细介绍了使用 Java API 实现与 Elasticsearch 集群交互的方法, 包括连接集群、定义索引字段、索引数据、删除数据、搜索以及数据同步等方面的内容。这些技术对于构建高效稳定的搜索系统至关重要。
Elasticsearch-JDBC是Elasticsearch的一个插件,主要用于将数据从关系型数据库(如MySQL、Oracle等)导入到Elasticsearch中,实现数据的实时同步。2.2.0.0是该插件的一个版本号,这通常代表了在那个特定时间点的稳定...
1. **Elasticsearch**:Elasticsearch 是基于 Lucene 的搜索引擎,提供了 RESTful 风格的 API,使得数据索引和查询变得简单。它支持分布式、实时的数据存储和检索,能够处理大量的数据并快速返回结果。 2. **...
- **实时性**:Elasticsearch在数据被索引时就可搜索,无需额外的刷新操作,这使得它在实时数据分析领域非常受欢迎。 - **弹性伸缩**:Elasticsearch可以随着需求增加或减少节点,无需停机,保证服务的连续性。 3...
Elasticsearch是一个开源的全文搜索引擎,广泛应用于大数据分析和实时搜索场景。它的最新版本为7.14.0,这是专为Linux x86_64架构设计的。在这个版本中,Elasticsearch提供了一系列增强的功能和性能优化,旨在提高...