`
riching
  • 浏览: 263403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用java访问elasticsearch创建索引

 
阅读更多
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());

这个删除有个小问题,如果删除完立即进行查询还是可以查到
分享到:
评论

相关推荐

    elasticsearch整合分词、创建索引、搜索例子

    lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...

    springBoot动态操作Elasticsearch组件

    通过使用Spring Data Elasticsearch,我们可以方便地实现Elasticsearch的CRUD(创建、读取、更新和删除)操作。 1. **单个的增删改查**: 在Spring Boot应用中,我们可以通过定义Repository接口并继承`...

    elasticsearch5.x的java实现搜索

    使用Java API创建索引,首先需要导入必要的库,如`org.elasticsearch.client.transport.TransportClient`和`org.elasticsearch.common.settings.Settings`。然后,配置客户端连接到ES集群,创建索引并设置映射...

    ElasticSearch Java API

    在博客《Elasticsearch Java API详解》中,作者分享了一个使用Java API操作Elasticsearch的实例,包括如何创建索引、插入数据、执行搜索和聚合。通过这个实例,你可以深入理解Elasticsearch Java API的使用方法和...

    项目实战——Spark将Hive表的数据写入ElasticSearch(Java版本)

    在本项目实战中,我们将探讨如何使用Java编程语言,结合Spark和Hive,将Hive中的数据高效地导入到ElasticSearch(ES)中,并利用ES的别名机制实现数据更新的平滑过渡。以下是对这个流程的详细解析: 1. **Hive数据...

    Elasticsearch 7基于springboot的应用

    **Elasticsearch 7 ...提供的 `elasticsearch.pdf` 文件可能包含了更深入的理论介绍和最佳实践,而 `maguo-es-jd` 和 `maguo-es-api` 文件可能包含具体的代码示例和 API 使用说明,对于初学者来说是很好的学习资源。

    Elasticsearch之Java客户端Jest的全部依赖jar包

    总的来说,Jest作为Elasticsearch的Java客户端,为开发者提供了一种方便、高效的途径来访问和管理Elasticsearch集群。这个资源包中的所有jar文件都是构建和运行Jest客户端所必需的,确保了在Java环境中与Elastic...

    分布式搜索 elasticsearch 方案研究 - Java API

    使用 Java API 配置和连接 Elasticsearch 首先,需要在项目中添加 Elasticsearch 的 Java 客户端依赖。例如,使用 Maven 可在 `pom.xml` 文件中加入以下依赖: ```xml &lt;groupId&gt;org.elasticsearch.client ...

    Springboot集成elasticsearch

    使用Kibana进行Elasticsearch的监控,查看索引状态、搜索性能等指标。同时,配置日志输出,帮助排查问题。 通过以上步骤,你已成功地将Spring Boot应用与Elasticsearch集成,实现了数据的增删查改。继续深入学习...

    java实现es sql分页,采用SSM架构实现,开箱即用

    然后,在MyBatis的配置文件中添加这个数据源,使其能够访问Elasticsearch集群。 为了实现SQL查询,可以使用`elasticsearch-jdbc`库,它允许我们把Elasticsearch看作一个数据源,通过SQL语句进行操作。在Java代码中...

    ElasticSearch笔记

    ElasticSearch,简称为ES,是一个开源的、高度可扩展的分布式全文检索引擎。它基于 Java 开发,并利用 Lucene 作为其核心,实现了高效索引和搜索功能。ElasticSearch 通过Resultful API简化了与Lucene的交互,隐藏了...

    elasticsearch服务器安装包

    10. **数据导入**:使用`curl`命令或客户端库(如Java API)可以向Elasticsearch索引中添加、更新和删除数据。JSON文档是主要的数据交换格式。 11. **查询与分析**:Elasticsearch支持丰富的查询语法,包括全文搜索...

    ElasticSearch Java 中文文档 5.6

    文档还提到了与ElasticSearch交互的客户端类型,其中TransportClient是一个常用于外部程序访问ElasticSearch集群的客户端类型。此外,还介绍了索引脚本API、脚本语言以及ElasticSearch的Java API管理,包括索引、...

    springboot项目查询es中的日志内容

    在本项目中,我们主要探讨如何使用SpringBoot与Elasticsearch(ES)集成,以便查询存储在ES中的日志内容。Elasticsearch是一种强大的、分布式、实时的搜索和分析引擎,常用于处理大量数据,特别是在日志管理和分析...

    elasticsearch的详细安装和简单使用

    Elasticsearch 的详细安装和简单使用 Elasticsearch 是一个开源的搜索和数据分析引擎,它提供了强大的搜索功能和数据分析能力。在本文中,我们将详细介绍 Elasticsearch 的安装过程,并简单介绍其使用。 Elastic...

    Elasticsearch的javaapi使用.docx

    【Elasticsearch Java API 使用详解】 Elasticsearch(ES)是一种流行、开源的全文搜索引擎,提供了高度可扩展的近实时搜索、分析和存储能力。在Java环境中与Elasticsearch交互,通常通过Java API来实现。以下是一...

    es百度索引test工程创建

    在IT行业中,Elasticsearch(ES)是一种广泛使用的开源全文搜索引擎,它基于Lucene构建,提供了分布式、实时、高可扩展性的搜索和分析能力。"es百度索引test工程创建"是一个学习项目,旨在帮助用户了解如何在Elastic...

    Elasticsearch的javaapi使用.pdf

    使用Java API访问Elasticsearch,首先需要创建一个`Client`实例,这是与Elasticsearch通信的基础。以下是一个基本示例: ```java import org.elasticsearch.client.Client; import org.elasticsearch.client....

    Springboot1.3.1+elasticsearch1.7.3集群

    SpringBoot整合Elasticsearch,能够方便地在Java应用中集成搜索引擎功能,提供高效的数据检索和分析能力。以下将详细阐述这个主题中的关键知识点: 1. **SpringBoot集成Elasticsearch**:SpringBoot提供了`spring-...

    elasticsearch 6.8.0 整理.zip

    - "codes" 文件夹可能包含示例代码,演示如何使用 Elasticsearch 客户端库(如 Java REST Client)进行索引操作,如创建、更新和删除文档。 3. **数据导入与分析** - Elasticsearch 支持多种方式导入数据,如使用...

Global site tag (gtag.js) - Google Analytics