Elasticsearch(三) Java API操作

ElasticSearch——全文搜索引擎 一、为什么需要全文搜索引擎? 首先先来了解一个概念,在我们生活中一般来说有两种数据:结构化数据、非结构化数据 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据: 非结构化数据又可称为全文数据,指不定长或无固定格式的数据,如邮件,word文档等。 对于结构化数据我们可以直接从数据库查询,而对于非结构化的数据此时就要用到全文检索的方式查询,比如对一个文档或者网页中的内容文本每个词建立一个索引,把这些非结构化的变成结构化的方式然后来查询。 全文搜索引擎百度百科定义:全文搜索引擎是目前 阅读详情

 Java API操作

    Elasticsearch的Java客户端非常强大;它可以建立一个嵌入式实例并在必要时运行管理任务。

    运行一个Java应用程序和Elasticsearch时,有两种操作模式可供使用。该应用程序可在Elasticsearch集群中扮演更加主动或更加被动的角色。在更加主动的情况下(称为Node Client),应用程序实例将从集群接收请求,确定哪个节点应处理该请求,就像正常节点所做的一样。(应用程序甚至可以托管索引和处理请求。)另一种模式称为Transport Client,它将所有请求都转发到另一个Elasticsearch节点,由后者来确定最终目标

3.1.1 操作环境准备

1)创建maven工程

 

2)添加pom文件

       <dependencies>

              <dependency>

                     <groupId>junit</groupId>

                     <artifactId>junit</artifactId>

                     <version>3.8.1</version>

                     <scope>test</scope>

              </dependency>

              <dependency>

                     <groupId>org.elasticsearch</groupId>

                     <artifactId>elasticsearch</artifactId>

                     <version>5.2.2</version>

              </dependency>

 

              <dependency>

                     <groupId>org.elasticsearch.client</groupId>

                     <artifactId>transport</artifactId>

                     <version>5.2.2</version>

              </dependency>

 

              <dependency>

                     <groupId>org.apache.logging.log4j</groupId>

                     <artifactId>log4j-core</artifactId>

                     <version>2.9.0</version>

              </dependency>

       </dependencies>

3)等待依赖的jar包下载完成

 

当直接在ElasticSearch 建立文档对象时,如果索引不存在的,默认会自动创建,映射采用默认方式

3.1.2 获取Transport Client

(1)ElasticSearch服务默认端口9300。

(2)Web管理平台端口9200。

       private TransportClient client;

 

       @SuppressWarnings("unchecked")

       @Before

       public void getClient() throws Exception {

 

              // 1 设置连接的集群名称

              Settings settings = Settings.builder().put("cluster.name", "my-application").build();

 

              // 2 连接集群

              client = new PreBuiltTransportClient(settings);

              client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("hadoop102"), 9300));

 

              // 3 打印集群名称

              System.out.println(client.toString());

       }

3.1.3 创建索引

1)源代码

       @Test

       public void createIndex_blog(){

              // 1 创建索引

              client.admin().indices().prepareCreate("blog2").get();

             

              // 2 关闭连接

              client.close();

       }

2)查看结果

{"blog2":{"aliases":{},"mappings":{},"settings":{"index":{"creation_date":"1507466730030","number_of_shards":"5","number_of_replicas":"1","uuid":"lec0xYiBSmStspGVa6c80Q","version":{"created":"5060299"},"provided_name":"blog2"}}}}

3.1.4 删除索引

1)源代码

       @Test

       public void deleteIndex(){

              // 1 删除索引

              client.admin().indices().prepareDelete("blog2").get();

             

              // 2 关闭连接

              client.close();

       }

2)查看结果

浏览器查看http://hadoop102:9200/blog2

没有blog2索引了。

{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"blog2","index_uuid":"_na_","index":"blog2"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"blog2","index_uuid":"_na_","index":"blog2"},"status":404}

3.1.5 新建文档(源数据json串)

当直接在ElasticSearch建立文档对象时,如果索引不存在的,默认会自动创建,映射采用默认方式。

ElasticSearch服务默认端口9300

Web管理平台端口9200

1)源代码

       @Test

       public void createIndexByJson() throws UnknownHostException {

 

              // 1 文档数据准备

              String json = "{" + "\"id\":\"1\"," + "\"title\":\"基于Lucene的搜索服务器\","

                            + "\"content\":\"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口\"" + "}";

 

              // 2 创建文档

              IndexResponse indexResponse = client.prepareIndex("blog", "article", "1").setSource(json).execute().actionGet();

 

              // 3 打印返回的结果

              System.out.println("index:" + indexResponse.getIndex());

              System.out.println("type:" + indexResponse.getType());

              System.out.println("id:" + indexResponse.getId());

              System.out.println("version:" + indexResponse.getVersion());

              System.out.println("result:" + indexResponse.getResult());

 

              // 4 关闭连接

              client.close();

       }

2)结果查看

 

3.1.6 新建文档(源数据map方式添加json)

1)源代码

@Test

       public void createIndexByMap() {

 

              // 1 文档数据准备

              Map<String, Object> json = new HashMap<String, Object>();

              json.put("id", "2");

              json.put("title", "基于Lucene的搜索服务器");

              json.put("content", "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口");

 

              // 2 创建文档

              IndexResponse indexResponse = client.prepareIndex("blog", "article", "2").setSource(json).execute().actionGet();

 

              // 3 打印返回的结果

              System.out.println("index:" + indexResponse.getIndex());

              System.out.println("type:" + indexResponse.getType());

              System.out.println("id:" + indexResponse.getId());

              System.out.println("version:" + indexResponse.getVersion());

              System.out.println("result:" + indexResponse.getResult());

 

              // 4 关闭连接

              client.close();

       }

2)结果查看

 

3.1.7 新建文档(源数据es构建器添加json)

1)源代码

@Test

       public void createIndex() throws Exception {

 

              // 1 通过es自带的帮助类,构建json数据

              XContentBuilder builder = XContentFactory.jsonBuilder().startObject().field("id", 3)

                            .field("title", "基于Lucene的搜索服务器").field("content", "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。")

                            .endObject();

 

              // 2 创建文档

              IndexResponse indexResponse = client.prepareIndex("blog", "article", "3").setSource(builder).get();

 

              // 3 打印返回的结果

              System.out.println("index:" + indexResponse.getIndex());

              System.out.println("type:" + indexResponse.getType());

              System.out.println("id:" + indexResponse.getId());

              System.out.println("version:" + indexResponse.getVersion());

              System.out.println("result:" + indexResponse.getResult());

 

              // 4 关闭连接

              client.close();

       }

2)结果查看

 

3.1.8 搜索文档数据(单个索引)

1)源代码

       @Test

       public void getData() throws Exception {

             

              // 1 查询文档

              GetResponse response = client.prepareGet("blog", "article", "1").get();

             

              // 2 打印搜索的结果

              System.out.println(response.getSourceAsString());

             

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

3.1.9 搜索文档数据(多个索引)

1)源代码

@Test

       public void getMultiData() {

             

              // 1 查询多个文档

              MultiGetResponse response = client.prepareMultiGet().add("blog", "article", "1").add("blog", "article", "2", "3")

                            .add("blog", "article", "2").get();

             

              // 2 遍历返回的结果

              for(MultiGetItemResponse itemResponse:response){

                     GetResponse getResponse = itemResponse.getResponse();

                    

                     // 如果获取到查询结果

                     if (getResponse.isExists()) {

                            String sourceAsString = getResponse.getSourceAsString();

                            System.out.println(sourceAsString);

                     }

              }

             

              // 3 关闭资源

              client.close();

       }

2)结果查看

{"id":"1","title":"基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"}

{"content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口","id":"2","title":"基于Lucene的搜索服务器"}

{"id":3,"titile":"ElasticSearch是一个基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。"}

{"content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口","id":"2","title":"基于Lucene的搜索服务器"}

3.1.10 更新文档数据(update)

1)源代码

@Test

       public void updateData() throws Throwable {

 

              // 1 创建更新数据的请求对象

              UpdateRequest updateRequest = new UpdateRequest();

              updateRequest.index("blog");

              updateRequest.type("article");

              updateRequest.id("3");

 

              updateRequest.doc(XContentFactory.jsonBuilder().startObject()

                            // 对没有的字段添加, 对已有的字段替换

                            .field("title", "基于Lucene的搜索服务器")

                            .field("content",

                                          "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。大数据前景无限")

                            .field("createDate", "2017-8-22").endObject());

 

              // 2 获取更新后的值

              UpdateResponse indexResponse = client.update(updateRequest).get();

             

              // 3 打印返回的结果

              System.out.println("index:" + indexResponse.getIndex());

              System.out.println("type:" + indexResponse.getType());

              System.out.println("id:" + indexResponse.getId());

              System.out.println("version:" + indexResponse.getVersion());

              System.out.println("create:" + indexResponse.getResult());

 

              // 4 关闭连接

              client.close();

       }

2)结果查看

 

3.1.11 更新文档数据(upsert)

设置查询条件, 查找不到则添加IndexRequest内容,查找到则按照UpdateRequest更新。

@Test

       public void testUpsert() throws Exception {

 

              // 设置查询条件, 查找不到则添加

              IndexRequest indexRequest = new IndexRequest("blog", "article", "5")

                            .source(XContentFactory.jsonBuilder().startObject().field("title", "搜索服务器").field("content","它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。").endObject());

             

              // 设置更新, 查找到更新下面的设置

              UpdateRequest upsert = new UpdateRequest("blog", "article", "5")

                            .doc(XContentFactory.jsonBuilder().startObject().field("user", "李四").endObject()).upsert(indexRequest);

 

              client.update(upsert).get();

              client.close();

       }

第一次执行

hadoop102:9200/blog/article/5

 

第二次执行

hadoop102:9200/blog/article/5

 

3.1.12 删除文档数据(prepareDelete)

1)源代码

       @Test

       public void deleteData() {

             

              // 1 删除文档数据

              DeleteResponse indexResponse = client.prepareDelete("blog", "article", "5").get();

 

              // 2 打印返回的结果

              System.out.println("index:" + indexResponse.getIndex());

              System.out.println("type:" + indexResponse.getType());

              System.out.println("id:" + indexResponse.getId());

              System.out.println("version:" + indexResponse.getVersion());

              System.out.println("found:" + indexResponse.getResult());

 

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

3.2 条件查询QueryBuilder

3.2.1 查询所有(matchAllQuery)

1)源代码

@Test

       public void matchAllQuery() {

             

              // 1 执行查询

              SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

                            .setQuery(QueryBuilders.matchAllQuery()).get();

 

              // 2 打印查询结果

              SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

              System.out.println("查询结果有:" + hits.getTotalHits() + "条");

 

              Iterator<SearchHit> iterator = hits.iterator();

 

              while (iterator.hasNext()) {

                     SearchHit searchHit = iterator.next(); // 每个查询对象

 

                     System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印

              }

 

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

3.2.2 对所有字段分词查询(queryStringQuery)

1)源代码

       @Test

       public void query() {

              // 1 条件查询

              SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

                            .setQuery(QueryBuilders.queryStringQuery("全文")).get();

 

              // 2 打印查询结果

              SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

              System.out.println("查询结果有:" + hits.getTotalHits() + "条");

             

              Iterator<SearchHit> iterator = hits.iterator();

             

              while (iterator.hasNext()) {

                     SearchHit searchHit = iterator.next(); // 每个查询对象

                    

                     System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印

              }

             

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

3.2.3 通配符查询(wildcardQuery)

*:表示多个字符(任意的字符)

?:表示单个字符

1)源代码

@Test

       public void wildcardQuery() {

 

              // 1 通配符查询

              SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

                            .setQuery(QueryBuilders.wildcardQuery("content", "*全*")).get();

 

              // 2 打印查询结果

              SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

              System.out.println("查询结果有:" + hits.getTotalHits() + "条");

 

              Iterator<SearchHit> iterator = hits.iterator();

 

              while (iterator.hasNext()) {

                     SearchHit searchHit = iterator.next(); // 每个查询对象

 

                     System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印

              }

 

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

3.2.4 词条查询(TermQuery)

1)源代码

@Test

       public void termQuery() {

             

              // 1 第一field查询

              SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

                            .setQuery(QueryBuilders.termQuery("content", "全")).get();

             

              // 2 打印查询结果

              SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

              System.out.println("查询结果有:" + hits.getTotalHits() + "条");

 

              Iterator<SearchHit> iterator = hits.iterator();

 

              while (iterator.hasNext()) {

                     SearchHit searchHit = iterator.next(); // 每个查询对象

 

                     System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印

              }

 

              // 3 关闭连接

              client.close();

       }

2)结果查看

 

 

3.2.5 模糊查询(fuzzy)

 

@Test

       public void fuzzy() {

             

              // 1 模糊查询

              SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

                            .setQuery(QueryBuilders.fuzzyQuery("title", "lucene")).get();

             

              // 2 打印查询结果

              SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

              System.out.println("查询结果有:" + hits.getTotalHits() + "条");

 

              Iterator<SearchHit> iterator = hits.iterator();

 

              while (iterator.hasNext()) {

                     SearchHit searchHit = iterator.next(); // 每个查询对象

 

                     System.out.println(searchHit.getSourceAsString()); // 获取字符串格式打印

              }

 

              // 3 关闭连接

              client.close();

       }

3.3 映射相关操作

1)源代码

@Test

       public void createMapping() throws Exception {

             

              // 1设置mapping

              XContentBuilder builder = XContentFactory.jsonBuilder()

                            .startObject()

                                   .startObject("article")

                                          .startObject("properties")

                                                 .startObject("id1")

                                                        .field("type", "string")

                                                        .field("store", "yes")

                                                 .endObject()

                                                 .startObject("title2")

                                                        .field("type", "string")

                                                        .field("store", "no")

                                                 .endObject()

                                                 .startObject("content")

                                                        .field("type", "string")

                                                        .field("store", "yes")

                                                 .endObject()

                                          .endObject()

                                   .endObject()

                            .endObject();

 

              // 2 添加mapping

              PutMappingRequest mapping = Requests.putMappingRequest("blog4").type("article").source(builder);

             

              client.admin().indices().putMapping(mapping).get();

             

              // 3 关闭资源

              client.close();

       }

 

2)查看结果

 

 

申明:内容来自网络,仅供学习使用

 

实时搜索引擎Elasticsearch(5)——Java API的使用 前一篇有关ES的文章介绍了使用Rest方式调用ES的聚合API。本文介绍ES的Java API调用。 阅读详情

相关推荐

ElasticSearch系列——Elasticsearch Java API Client

实体类}//创建文档 final Produce produce = new Produce("aabbcc123" , "旺仔牛比糖" , "旺仔牛比糖吃了炒鸡牛笔" , 6.66D);

qq_51553982的博客 3633

elasticsearch更新数据

private static TransportClient client=EsClient.getTransportClient(); 1、更新方法(一)    public static void upMethod1(String index,String type,HashMap map) {         try {             // 方法一:创建一个Update

浮生飘血的专栏 3056

[ElasticSearch2.x]Java API 之 索引管理

ElasticSearch为了便于处理索引管理(Indices administration)请求,提供了 org.elasticsearch.client.IndicesAdminClient接口。通过如下代码从 Client 对象中获得这个接口的实现: IndicesAdminClient indicesAdminClient = client.admin().indices();

SmartSi 1万+

springboot集成ES,ElasticsearchClient数据增删改查

ElasticsearchClient数据增删改查

weixin_45010810的博客 1286

Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)

本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。

cake8的博客 1159

AI影像组学在结直肠癌诊疗中的应用:从特征提取到临床决策

影像组学通过高通量计算从医学影像中提取定量特征,揭示肿瘤内部的微观生物学行为,这些特征反映了纹理异质性、形状不规则度等影像表型。其核心原理在于将图像数据转化为可分析的数字特征,结合机器学习算法进行模式识别,从而实现对疾病状态的精准预测。这一技术的价值在于能够无创、定量地评估肿瘤特性,为精准医疗提供关键支持。在临床实践中,AI驱动的影像组学模型广泛应用于结直肠癌的诊疗全链条,包括肿瘤良恶性鉴别、基因突变预测、治疗反应评估和预后分析等场景。通过整合影像组学特征与临床数据,可以构建预测模型,辅助医生进行更准确的诊

weixin_28295799的博客 409

Elasticsearch:运用 Java 更新或删除 Elasticsearch 文档

在 Elasticsearch 的设计中,一般来说更新或者删除文档并不常见。这其中的原因最主要是 Elasticsearch 以搜索为主,针对大多数的文档来说,比如日志,指标,根本就不需要更新或者删除。更新文档通常会给 Elasticsearch 的性能带来一些影响,所以一般来说不建议频繁地更新文档。 在我的上一篇文章 “Elasticsearch:运用 Java 创建索引并写入数据” 中, 我详细地介绍了几种常见的通过 Java 创建 Elasticsearch 文档的方法。在今天的文章中,我来介绍几种

Elastic 中国社区官方博客 4868

Hierarchical Flow Partition(Top-down&&Bottom-up)

hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。

qq_39493558的博客 3062

Elasticsearch基础——常用API操作(SpringBoot整合ElasticSearch)

学完elasticsearch的API操作,为了防止遗忘,写篇博客记录下来,方便以后使用。 1.创建一个SpringBoot项目,添加elasticsearch的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId&g

qq_43687990的博客 1046

Abaqus子程序开发避坑指南:从UMESHMOTION到齿轮磨损分析实战

本文深入探讨Abaqus子程序开发中的关键技术与避坑指南,重点解析UMESHMOTION在齿轮磨损分析中的实战应用。从开发环境搭建、调试框架构建到性能优化和大规模计算,提供系统化的解决方案。通过真实案例展示如何避免内存泄漏、网格畸变等常见问题,并介绍数据驱动的磨损预测等前沿技术,帮助工程师提升仿真精度与效率。

weixin_30892037的博客 87

Webots+UR机械臂仿真全流程:手把手教你用Python实现Pick-and-Place轨迹规划

本文详细介绍了使用Webots和Python实现UR六自由度机械臂的Pick-and-Place轨迹规划全流程。从环境搭建、运动学正逆解计算到轨迹规划实战技巧,涵盖工业场景中的关节补偿、末端校准等实际问题解决方案,帮助开发者快速掌握机械臂精准控制技术。

weixin_29083649的博客 282

java es index_Elasticsearch学习(三)—JAVA API操作(Index、Document)

API 文档RestClientElasticsearch 会在7.0之后的版本废弃TransportClient,在8.0之后的版本移除TransportClient (文档)。因此,使用RestClient来进行相关的操作。We plan on deprecating the TransportClient in Elasticsearch 7.0 and removing it comple...

weixin_35850219的博客 483

GIS数据处理-使用PostGIS+QGIS

GIS数据处理1-使用PostGIS+QGIS 介绍 这里我遇到了一个需求,需要将SQLite的.db数据库中GIS数据导出成shapefile文件 数据库的表结构如下所示,这里存储的是wkt格式的矢量数据 WKT与WKB格式介绍 OpenGIS 规范定义了两种表示空间对象的标准方式:Well-Know Text (WKT) 形式和Well-Known Binary(WKB) 形式。WKT 和 WKB 都包含矢量几何要素的对象类型和构成对象的坐标的信息。WKT可读性强,更方便阅读识别,而在实际数据传输和存

孙霸天的专栏 2526

ElasticSearch学习(三):Java API操作ElasticSearch

一、基础操作:创建和关闭es服务器 1、创建maven项目,并导入依赖 <dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.8.0<...

m0_49499183的博客 2155

基于深度学习的柑橘病害检测系统——YOLOv8 + UI界面 + 数据集

深度学习是机器学习的一种重要分支,它通过构建多层的神经网络(尤其是卷积神经网络CNN)来从大规模的数据中学习特征。近年来,深度学习特别是在计算机视觉领域取得了显著的进展,成为图像分类、目标检测、图像分割等任务的主要技术。对于农业病害检测问题,深度学习通过对大量带标签的病害图像进行训练,能够自动识别不同类型的病害,并判断病害的程度。通过图像中目标(病害区域)的边界框,可以快速定位病害区域,进一步分析其影响范围。

YOLO 1042

【WRF-Urban】WUDAPT详解:An Urban Weather, Climate, and Environmental Modeling Infrastructure

WUDAPT详解:An Urban Weather, Climate, and Environmental Modeling Infrastructure

WW、forever的博客 495

分布式搜索elasticsearch java API 之(三)------索引操作

索引数据 es索引数据非常方便,只需构建个json格式的数据提交到es就行,下面是个java api的例子: XContentBuilder doc = jsonBuilder() .startObject() .field("title", "this is a title!") .field("des...

iteye_7288的博客 148

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Elasticsearch——使用Java API实现ES中的索引、映射、文档操作

Elasticsearch——使用Java API实现ES中的索引、映射、文档操作

贝尔摩德苦艾酒 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

elasticsearch笔记五:2024最新版ES8Java客户端-Elasticsearch Java 的client API 操作 Elasticsearch client 8.0

低级别的 REST 客户端,通过 http 与集群交互,用户需自己编组请求 JSON 串,及解析响应 JSON 串。兼容所有 ES 版本。高级别的 REST 客户端,基于低级别的 REST 客户端,增加了编组请求 JSON 串、解析响应 JSON 串等相关 api。使用的版本需要保持和 ES 服务端的版本一致,否则会有版本问题。

LoveSummer 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ES(elasticsearch)搜索引擎 结合java 使用

ES(elasticsearch)搜索引擎 结合java 使用 官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.x/java-rest-high.html 重点概念: 文件索引块是因为使用了倒排索引 倒排索引: 例如 文件a 中有 单词 java php ,文件b中有 java php python ,文件c 中有java , python 那么 单词对应的文件为: java :a ,b,c

qq_42011565的博客 4827

最新版ES8的client API操作 Elasticsearch Java API client 8.0

我们在学习ES客户端时,一直使用的都是`Java High Level Rest Client`,在浏览官网时,发现官方给出的警告是:`Java REST` 客户端已被弃用,取而代之的是 `Java API client` 客户端,ES `8.x` 新版本中,`Type` 概念被弃用,所以新版 `JavaAPI` 也相应做出了改变,使用更加简便。ES 官方从 `7.15` 起开始建议使用新的 `JavaAPI` 如何使用最新的 `Elasticsearch Java client 8.0` 来创建索引并进

ShockChen7的博客 1万+

Elasticsearch连续剧之实战篇Java操作es

大家好!我是狮子,在上几篇文章中,详细介绍了在kibana中操作es,现在我们来看看真实开发中,如何使用Java操作es。这个部分不难理解,就是搞清楚几个对象之前的作用,准确调用方法就好,咱们只需要了解以下用法,需要使用的时候,再查资料就行。但是真实开发中,一般都是使用框架封装好的对象(为咱么省略了好多繁琐步骤。

狮子也疯狂的博客 8979

ElasticSearch入门(安装、核心概念、基础功能、DSL高级查询、Java APi操作ES)

官网: https://www.elastic.co/ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elastic官方宣布Elasticsearch进入Version 8,在速度、扩展、高相关性和简单性方面开启了一个全新的时代。

小丁的博客 1809

Elasticsearch之Java Api操作

一、创建Maven项目 Elasticsearch软件是由 Java 语言开发的,所以也可以通过 Java API 的方式对 Elasticsearch服务进行访问。 修改pom 文件,增加 Maven 依赖关系。 <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId&gt..

Jak的博客 9254

Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo

elastic search实战小demo:https://github.com/simonsfan/springboot-quartz-demo,分支:feature_es 之前在 Elastic Search之Search API(Query DSL)、Elasticsearch之索引和文档API 文章中讲到过elastic search(以下简称es)的以下常用的原生api,本篇开始讲述如...

分享传递价值 3万+

ElasticSearch全文搜索引擎

Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。Lucene适用于中小型项目 ,ES适用于中大型项目(它底层是基于lucene实现的)虽然全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。

2201_75971147的博客 3233
上一篇: Elasticsearch(二)安装
下一篇: 突击训练第一季(二)全文检索之ES
夜未眠shm
博客等级 码龄14年 15粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值