1、添加maven依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>0.90.0</version>
</dependency>
建议使用maven管理项目,因为elasticsearch还有很多依赖包,手工维护很麻烦
2、创建连接elasticsearch服务的client
Settings settings = ImmutableSettings.settingsBuilder().put("client.transport.sniff", true).put("cluster.name", "name of node").build();
Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("ip of server", 9300));
3、创建索引
elasticsearch的java客户端,支持多种方式构建索引数据,这里有两种方式的代码示例:使用jsonbuilder构建数据
IndexResponse response = client.prepareIndex("comment_index", "comment_ugc", "comment_123674")
.setSource( XContentFactory.jsonBuilder()
.startObject()
.field("author", "569874")
.field("author_name", "riching")
.field("mark", 232)
.field("body", "北京不错,但是人太多了")
.field("createDate", "20130801175520")
.field("valid", true)
.endObject())
.setTTL(8000)
.execute().actionGet();
System.out.println(response.getId());
另外一种,是把数据构造成json串,直接传给client
Student student = new Student(103161066, 20, "riching", "beijing");
String jsonValue = mapper.writeValueAsString(student);
response = client.prepareIndex("student_index", "student_info", "stu_103161066").setSource(jsonValue).execute().actionGet();
System.out.println(response.getId());
实际应用中应该是下面一种更方便,可以把需要索引的对象直接扔过去了
4、根据id获取数据
GetResponse responseGet = client.prepareGet("comment_index", "comment_ugc", "comment_123674").execute().actionGet();
System.out.println(responseGet.getSourceAsString());
5、查询索引
SearchRequestBuilder builder = client.prepareSearch("comment_index").setTypes("comment_ugc").setSearchType(SearchType.DEFAULT).setFrom(0).setSize(100);
BoolQueryBuilder qb = QueryBuilders.boolQuery().must(new QueryStringQueryBuilder("北京").field("body"))
.should(new QueryStringQueryBuilder("太多").field("body"));
builder.setQuery(qb);
SearchResponse response = builder.execute().actionGet();
System.out.println(" " + response);
System.out.println(response.getHits().getTotalHits());
执行结果
{
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "comment_index",
"_type" : "comment_ugc",
"_id" : "comment_123674",
"_score" : 0.19178301, "_source" : {"author":"569874","author_name":"riching","mark":232,"body":"北京不错,但是人太多了","createDate":"20130801175520","valid":true}
} ]
}
}
1
6、删除索引,可以根据索引id删除索引,也可以构造query进行删除,这跟lucene的api是类似的,只不过api不一样而已
DeleteResponse response = client.prepareDelete("comment_index", "comment_ugc", "comment_123674") .setOperationThreaded(false).execute().actionGet();
System.out.println(response.getId());
这个删除有个小问题,如果删除完立即进行查询还是可以查到
分享到:
相关推荐
lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...
通过使用Spring Data Elasticsearch,我们可以方便地实现Elasticsearch的CRUD(创建、读取、更新和删除)操作。 1. **单个的增删改查**: 在Spring Boot应用中,我们可以通过定义Repository接口并继承`...
使用Java API创建索引,首先需要导入必要的库,如`org.elasticsearch.client.transport.TransportClient`和`org.elasticsearch.common.settings.Settings`。然后,配置客户端连接到ES集群,创建索引并设置映射...
在博客《Elasticsearch Java API详解》中,作者分享了一个使用Java API操作Elasticsearch的实例,包括如何创建索引、插入数据、执行搜索和聚合。通过这个实例,你可以深入理解Elasticsearch Java API的使用方法和...
在本项目实战中,我们将探讨如何使用Java编程语言,结合Spark和Hive,将Hive中的数据高效地导入到ElasticSearch(ES)中,并利用ES的别名机制实现数据更新的平滑过渡。以下是对这个流程的详细解析: 1. **Hive数据...
**Elasticsearch 7 ...提供的 `elasticsearch.pdf` 文件可能包含了更深入的理论介绍和最佳实践,而 `maguo-es-jd` 和 `maguo-es-api` 文件可能包含具体的代码示例和 API 使用说明,对于初学者来说是很好的学习资源。
总的来说,Jest作为Elasticsearch的Java客户端,为开发者提供了一种方便、高效的途径来访问和管理Elasticsearch集群。这个资源包中的所有jar文件都是构建和运行Jest客户端所必需的,确保了在Java环境中与Elastic...
使用 Java API 配置和连接 Elasticsearch 首先,需要在项目中添加 Elasticsearch 的 Java 客户端依赖。例如,使用 Maven 可在 `pom.xml` 文件中加入以下依赖: ```xml <groupId>org.elasticsearch.client ...
使用Kibana进行Elasticsearch的监控,查看索引状态、搜索性能等指标。同时,配置日志输出,帮助排查问题。 通过以上步骤,你已成功地将Spring Boot应用与Elasticsearch集成,实现了数据的增删查改。继续深入学习...
ElasticSearch,简称为ES,是一个开源的、高度可扩展的分布式全文检索引擎。它基于 Java 开发,并利用 Lucene 作为其核心,实现了高效索引和搜索功能。ElasticSearch 通过Resultful API简化了与Lucene的交互,隐藏了...
10. **数据导入**:使用`curl`命令或客户端库(如Java API)可以向Elasticsearch索引中添加、更新和删除数据。JSON文档是主要的数据交换格式。 11. **查询与分析**:Elasticsearch支持丰富的查询语法,包括全文搜索...
文档还提到了与ElasticSearch交互的客户端类型,其中TransportClient是一个常用于外部程序访问ElasticSearch集群的客户端类型。此外,还介绍了索引脚本API、脚本语言以及ElasticSearch的Java API管理,包括索引、...
Elasticsearch 的详细安装和简单使用 Elasticsearch 是一个开源的搜索和数据分析引擎,它提供了强大的搜索功能和数据分析能力。在本文中,我们将详细介绍 Elasticsearch 的安装过程,并简单介绍其使用。 Elastic...
在本项目中,我们主要探讨如何使用SpringBoot与Elasticsearch(ES)集成,以便查询存储在ES中的日志内容。Elasticsearch是一种强大的、分布式、实时的搜索和分析引擎,常用于处理大量数据,特别是在日志管理和分析...
【Elasticsearch Java API 使用详解】 Elasticsearch(ES)是一种流行、开源的全文搜索引擎,提供了高度可扩展的近实时搜索、分析和存储能力。在Java环境中与Elasticsearch交互,通常通过Java API来实现。以下是一...
在IT行业中,Elasticsearch(ES)是一种广泛使用的开源全文搜索引擎,它基于Lucene构建,提供了分布式、实时、高可扩展性的搜索和分析能力。"es百度索引test工程创建"是一个学习项目,旨在帮助用户了解如何在Elastic...
使用Java API访问Elasticsearch,首先需要创建一个`Client`实例,这是与Elasticsearch通信的基础。以下是一个基本示例: ```java import org.elasticsearch.client.Client; import org.elasticsearch.client....
然后,在MyBatis的配置文件中添加这个数据源,使其能够访问Elasticsearch集群。 为了实现SQL查询,可以使用`elasticsearch-jdbc`库,它允许我们把Elasticsearch看作一个数据源,通过SQL语句进行操作。在Java代码中...
SpringBoot整合Elasticsearch,能够方便地在Java应用中集成搜索引擎功能,提供高效的数据检索和分析能力。以下将详细阐述这个主题中的关键知识点: 1. **SpringBoot集成Elasticsearch**:SpringBoot提供了`spring-...
- "codes" 文件夹可能包含示例代码,演示如何使用 Elasticsearch 客户端库(如 Java REST Client)进行索引操作,如创建、更新和删除文档。 3. **数据导入与分析** - Elasticsearch 支持多种方式导入数据,如使用...