首页
学习
活动
专区
圈层
工具
发布

java使用jest连接操作Elasticsearch2.2.0中的索引

前言 在了解jest框架前,楼主一直尝试用官方的Elasticsearch java api连接es服务的,可是,不知何故,一直报如下的异常信息,谷歌了很久,都说是jvm版本不一致导致的问题,可我是本地测试的...实例的,官方api地址:Elasticsearch java api,代码如下: Client client = new TransportClient().addTransportAddress(new...jest是一个基于 HTTP Rest 的连接es服务的api工具集,功能强大,能够使用es java api的查询语句,项目是开源的,github地址:https://github.com/searchbox-io...include_in_all": "true",         "boost": 8       }     }   } } mapping信息可以用head插件查看,如下 导入数据和查询...Index.Builder(k).index("indexdata").type("fulltext").id(k.getArcid()+"").build(); System.out.println("添加索引

75920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用 Delete By Query API 的方式删除ES索引中的数据

    的方式去删除索引中的数据。...二、Delete By Query API 介绍 怎么理解这个API呢?实际是批量删除数据的意思 功能:根据特定的查询条件对ES相关索引中某些特定的文档进行批量删除。...使用Delete By Query 删除API注意事项: 1, 一般生产环境中,使用该API操作的索引都很大,文档都是千万甚至数亿级别。...段合并的时候会将那些旧的已删除文档从文件系统中清除。被删除的文档(或被更新文档的旧版本)不会被拷贝到新的大段中。启动段合并不需要你做任何事。进行索引和搜索时会自动进行。...被删除的文档在segment合并时,才会被真正删除掉。在此之前,它仍然会占用着JVM heap和操作系统的文件cache、磁盘等资源。

    43.8K111

    spark使用zipWithIndex和zipWithUniqueId为rdd中每条数据添加索引数据

    spark的rdd中数据需要添加自增主键,然后将数据存入数据库,使用map来添加有的情况是可以的,有的情况是不可以的,所以需要使用以下两种中的其中一种来进行添加。...zipWithIndex def zipWithIndex(): RDD[(T, Long)] 该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对。...((A,0), (B,1), (R,2), (D,3), (F,4)) zipWithUniqueId def zipWithUniqueId(): RDD[(T, Long)] 该函数将RDD中元素和一个唯一...ID组合成键/值对,该唯一ID生成算法如下: 每个分区中第一个元素的唯一ID值为:该分区索引号, 每个分区中第N个元素的唯一ID值为:(前一个元素的唯一ID值) + (该RDD总的分区数) 看下面的例子

    5K91

    使用ELK+SpringBoot+bboss实现日志分析一例

    2、设计 使用Spring Boot实现一个MVC架构的日志分析展示系统很方便,View和Controller依据使用场景建立即可,这里主要考虑Model的实现,包括建立Elastic索引,和确定如何访问...2.2.1、官方Java客户端 目前常用的Java客户端有两大类,一个是TransportClient,但官方会逐渐弃用,在未来的Elastic8中将被淘汰。...ElasticsearchTemplate与领域对象无关,可以用它进行一些repository无法完成的操作,如索引的创建和删除,文档的Aggregation等。...bboss和spring-data-elastic类似,也是一款Elastic ORM开发库,采用xml文件管理Elastic的DSL脚本,在DSL脚本中可以使用变量、循环、逻辑判断和注释等,开发和调试非常方便...有了这些DSL语句,程序使用bboss的API就可以进行Query和Aggregation操作了。 3、展示 最后,几个使用场景如下: ? ?

    1.3K30

    SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成

    还有另一个选择就是 Jest,以下是 官网 的介绍:简单说就是:ES 有 Java API 但是没有 Http Rest interface,Jest 就是它的 HTTP Client。2.依赖使用(1)创建客户端【官网代码】// Construct a new Jest client according to configuration...【特别注意:更新语句官网给出的无法使用】 @Test void updateIndex() { // 更新语句【可以在HiJson工具里编辑】 String script...},"_seq_no":2,"_primary_term":1}, isSucceeded: true, response code: 200, error message: null页面查看:(4)删除索引...Jest 的灵活性明显要比 Java api 要高,我们可以将增删改查的创建过程进行封装,输入参数获取解析后的结果。

    20310

    Elasticsearch之索引管理API(Index management)

    Java示例 删除、打开、查找,关闭等API的使用类似,下面给出一个简单的JAVA示例: 1public static final void testGetIndex() { 2 RestHighLevelClient...索引收缩是可以通过_cat recovery api和cluster health api来监控shrink的过程,这两个命令将在后续文章中详解。...该API必须接收一个索引别名和一个条件列表(用来从老的索引中过滤需要迁移的文档)。根据别名指向索引的类别,别名元数据将以不同的方式更新。...两种情况如下: alias只指向一个单一的索引(索引可写) 在这个场景中,原始索引的rollover别名将被添加到新创建的索引中,并从原始索引中删除。...1PUT /logs-000001 2{ 3 "aliases": { 4 "logs_write": {} 5 } 6} step2:向该索引中添加超过1000个文档

    3.3K30

    Elasticsearch Index Aliases详解

    思考:一个索引别名可以映射成多个索引,那如果向一个别名添加一个文档时,会在该别名下对应的所有索引下都创建一个文档?...为索引创建别名,也可以在创建索引API中指定: 1PUT test 2{ 3 "aliases" : { 4 "alias_1" : {}, 5 "alias...过滤器可以使用查询DSL定义,并应用于所有搜索、计数、按查询删除以及类似于此别名的操作。...Write Index 如果一个别名只映射了一个真实索引,则可以使用别名进行index api(即索引文档,写文档),但如果一个别名同一时间映射了多个索引,默认是不能直接使用别名进行索引文档,因为ES不知道文档该发往哪个索引...可以使用is_write_index属性为一个别名下的其中一个索引指定为写索引,此时则可以直接使用别名进行index api的调用。

    1.9K20

    SpringBoot 使用JestClient操作Elasticsearch

    [image] 2.2 添加Jest依赖 创建项目,在pom文件中加入Jest依赖(这里根据上面版本对应添加依赖),这里额外添加量了elasticsearch和lombok为了方便操作,如下: 2.2.6.RELEASE 2.3 配置文件 在配置文件中添加...3.2 索引类操作 结合MySQL来看的话,索引可以理解为一个数据库,索引相关的操作可能不是很多,这里介绍相对比较常用的是创建索引和删除索引,如下: 3.2.1 创建索引 CreateIndex createIndex...,也就是说一条数据,由于新增和修改在同一个方法内,所以这里也是对新增(和修改)和删除方法进行介绍,如下: 3.3.1 新增或修改文档 首先会判断索引是否存在,不存在的话会根据索引文档进行创建索引,然后进行新增或修改操作...中查询一致,如图 [image] 4.一些建议 相关操作Elasticsearch的客户端有很多,这里就不做相关对比了,JestClient本人也在真实上线项目中使用过,这里只是在使用过几种的前提下做出几点建议

    1.4K00

    基于Java、Kafka、ElasticSearch的搜索框架的设计与实现

    这里可以很灵活,如果使用Spring Boot,可以使用@ConfigurationProperties提供配置 增加索引管理端点 因为我们不知道客户端使用的哪种web技术,所以索引端点需要在客户端添加...比如在Spring MVC中,可以按照如下方式添加索引端点 ? ? 快速开始 索引API 使用com.timeyang.jkes.core.annotation包下相关注解标记实体 ? ? ? ?...在事务提交后使用JkesKafkaProducer发送SaveEvent中的实体到Kafka,Kafka会使用我们提供的JkesJsonSerializer序列化指定的数据,然后发送到Kafka。...Spring Boot Application,使用docker打包为镜像 查询服务提供多版本API,用于API进化和兼容 查询服务解析json请求,进行一些预处理后,使用ElasticSearch Java...(DeleteEvent),然后使用Jest Client删除ElasticSearch中相应的文档。

    2.6K10

    ELK专栏之ES索引-04

    ● 所以,不同类型的数据,要放在不同的索引中。 ● ES9中,将彻底删除type。...这些字段将不会被索引,因此将无法搜索,但仍将出现在返回的源字段中。这些字段不会添加到映射中,必须显示的添加新字段。 strict:遇到陌生字段,就报错。...终端Java应用已经在使用old_index操作了,难道我们需要停止Java应用,修改使用的index为new_index,再重新启动Java应用?...这个过程中,必然会导致Java应用停机,可用性也降低。 ⑥给索引起一个别名,Java应用指向这个别名,那么此时Java应用指向的是旧索引。...⑪将prod_index这个alias切换到my_index_new上,Java应用会直接通过index别名使用新的索引中的数据,Java应用程序不需要停机,高可用。

    87340

    如何在Elasticsearch里面使用索引别名

    在elasticsearch里面给index起一个aliases(别名)能非常优雅的解决两个索引无缝切换的问题,这个功能在某些场景下非常使用。...在es里面index aliases就像是软连接一样,它可以映射一个或多个索引,提供了非常灵活的特性,使用它我们可以做到: (1)在一个运行中的es集群中无缝的切换一个索引到另一个索引上 (2)分组多个索引...下面看下java api里面如何操作: (1)添加别名 client.admin().indices().prepareAliases().addAlias("my_index_v1","my_index....addAlias("my_index_v2","my_index").execute().actionGet(); 当别名添加完毕后,我们在删除,搜索,更新都可以直接使用: SearchRequestBuilder...总结: 本文介绍了es里面别名的功能和作用并讲解了如何使用别名,如果我们的索引不确定未来如何使用时,给索引加一个别名是一个不错的选择。

    9.4K90

    干货 | Elasticsearch开发人员最佳实战指南

    本文梳理的内容试图传达Java的某些思想,我相信其同样适用于其他编程语言。我尝试尽量避免重复教程和Elasticsearch官方文档中已经介绍的内容。...后台的Elasticsearch通过以下两种模式连续维护这些Lucene段: 在Lucene中,当你删除或更新文档时,旧文档被标记为已删除,而新文档被创建。...3.9 使用size: 0和includes/ excludes限定字段返回 Elasticsearch在添加size: 0子句前后会带来显著的性能差异 。...4.1 始终(尝试)坚持使用最新的JVM和ES版本 Elasticsearch是一个Java应用程序。像其他所有Java应用程序一样,它也有hot paths和垃圾回收问题。...4.4 使用别名 告诉你一些颇有见地的实操经验:永远不要查询索引,而要查询 别名。 别名是指向实际索引的指针。你可以将一个或多个索引归为一个别名。

    2K22

    该上 Java 客户端了!

    所以,我们还是很有必要专门来学习一下 Java API 的。 在正式开始介绍 Java 客户端之前,我先和大家稍微捋一捋目前常见的 Java 客户端都有哪些,以及各自的特点,作为一个简单的开篇。...不过从 ElasticSearch7.0 开始,官方已经不再推荐使用 TransportClient,并且表示会在 ElasticSearch8.0 中完全移除相关支持。...Jest Jest 提供了更流畅的 API 和更容易使用的接口,并且它的版本是遵循 ElasticSearch 的主版本号的,这样可以确保客户端和服务端之间的兼容性。...ElasticSearch 索引基本操作 ElasticSearch 文档的添加、获取以及更新 ElasticSearch 文档的删除和批量操作 ElasticSearch 文档路由,你的数据到底存在哪一个分片上...ElasticSearch 并发的处理方式:锁和版本控制 ElasticSearch 中的倒排索引到底是什么?

    2.5K00

    如何增加 Elasticsearch 中的主分片数量

    在这两种方法中,_split API 通常比 _reindex API 更快。在操作之前,必须停止索引操作,否则源索引和目标索引的文档数量会不一致。...你需要删除源索引,并将源索引名作为别名添加到目标索引:DELETE test_split_sourcePUT /test_split_target/_alias/test_split_source添加test_split_source...在创建具有预期主分片数量的新索引后,可以将源索引中的所有数据重新索引到这个新索引中。除了 split API 的功能外,reindex API 允许使用 ingest_pipeline 操作数据。...在将 test_reindex_source 别名添加到 test_reindex_target 索引后,使用以下命令测试:GET test_reindex_source总结如果你想增加现有索引的主分片数量...有两种主要方法可以实现这一点:reindex API 和 split API。在使用任何一种方法之前,必须停止活动索引。

    85221

    【Elastic】ES重建索引怎么才能做到数据无缝迁移呢?

    当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固定配置将不能改变。那如果后续业务发生变化,需要改变数据结构或者更换ES更换分词器怎么办呢?...blog_lastest,Mapping数据结构与blog索引一致 将blog数据同步至blog_lastest 删除blog索引 数据同步后给blog_lastest添加别名blog 新建索引 在这里推荐一个..."index": "blog_lastest" } } 在 kibana 中的使用如下所示 ?..._reindex API 中,表示写入时只在 dest index中添加不存在的 doucment,如果相同的 document 已经存在,则会报 version confilct 的错误,那么索引操作就会失败...删除旧索引 当我们通过 API 查询发现任务完成后,就可以进行后续操作,我这里是要删除旧索引,然后再给新索引起别名,用于替换旧索引,这样才能保证对外服务没有任何感知。

    1.4K21

    「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?

    当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固定配置将不能改变。 索引一致 将blog数据同步至blog_lastest 删除blog索引 数据同步后给blog_lastest添加别名blog 新建索引 在这里推荐一个...": "blog_lastest" } } 在 kibana 中的使用如下所示 [-w706] 当然高版本(7.1.1)中,ES都有提供对应的Java REST Client,比如 ReindexRequest..._reindex API 中,表示写入时只在 dest index中添加不存在的 doucment,如果相同的 document 已经存在,则会报 version confilct 的错误,那么索引操作就会失败...删除旧索引 当我们通过 API 查询发现任务完成后,就可以进行后续操作,我这里是要删除旧索引,然后再给新索引起别名,用于替换旧索引,这样才能保证对外服务没有任何感知。

    6K10
    领券