当前位置: 首页 > news >正文

[elasticsearch 实现插入查询小demo ]

目录

前言:  

 。以下是Java语言实现Elasticsearch数据插入和批量插入的示例代码:

我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:

下面是一个Java代码示例,演示了如何使用Elasticsearch实现数据插入和批量插入:

依赖:

elasticsearch 实现高亮查询操作:

我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:

下面是一个Java代码示例,演示了如何使用Elasticsearch实现高亮查询:


前言:  

     Elasticsearch是一个分布式的全文搜索和分析引擎,支持实时数据插入和批量插入

 。以下是Java语言实现Elasticsearch数据插入和批量插入的示例代码:

  1. 首先,我们需要使用Java Elasticsearch客户端库来连接Elasticsearch集群。在本示例中,我们使用Elasticsearch Java High Level REST Client库来连接Elasticsearch集群。

  2. 我们需要定义一个ElasticsearchIndex类来管理Elasticsearch索引。在本示例中,我们使用一个名为"test_index"的索引来进行数据插入和批量插入操作。

public class ElasticsearchIndex {
    public static final String INDEX_NAME = "test_index";
}
 

我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:

  • insert:使用Elasticsearch Java High Level REST Client库的Index API插入单条数据。
  • bulkInsert:使用Elasticsearch Java High Level REST Client库的Bulk API批量插入数据。
public class ElasticsearchUtil {private static final RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));public static void insert(String id, String json) throws IOException {IndexRequest request = new IndexRequest(ElasticsearchIndex.INDEX_NAME);request.id(id);request.source(json, XContentType.JSON);client.index(request, RequestOptions.DEFAULT);}public static void bulkInsert(List<String> jsonList) throws IOException {BulkRequest request = new BulkRequest();for (String json : jsonList) {IndexRequest indexRequest = new IndexRequest(ElasticsearchIndex.INDEX_NAME);indexRequest.source(json, XContentType.JSON);request.add(indexRequest);}client.bulk(request, RequestOptions.DEFAULT);}
}
  • 我们可以在Java应用程序中调用ElasticsearchUtil类中的方法来实现Elasticsearch数据插入和批量插入功能。例如,当需要插入单条数据时,我们可以调用insert方法,并传递数据的ID和JSON格式的数据。当需要批量插入数据时,我们可以调用bulkInsert方法,并传递一个包含多条JSON格式数据的列表。

下面是一个Java代码示例,演示了如何使用Elasticsearch实现数据插入和批量插入:

public class Main {public static void main(String[] args) throws IOException {// 插入单条数据String id = "1";String json = "{\"name\":\"John\", \"age\":30}";ElasticsearchUtil.insert(id, json);// 批量插入数据List<String> jsonList = new ArrayList<>();jsonList.add("{\"name\":\"John\", \"age\":30}");jsonList.add("{\"name\":\"Mary\", \"age\":25}");ElasticsearchUtil.bulkInsert(jsonList);}
}

依赖:

<dependency> 2 <groupId>org.elasticsearch.client</groupId> 3 <artifactId>elasticsearch-rest-high-level-client</artifactId> 4 <version>7.14.0</version> 5</dependency>

这个示例中,我们演示了如何使用Elasticsearch Java High Level REST Client库实现数据插入和批量插入。需要注意的是,使用Elasticsearch需要在Elasticsearch服务器端启用集群模式,并配置好集群节点。在Java客户端中,需要指定至少一个集群节点的IP地址和端口号,客户端会自动发现其他节点并进行集群操作。


elasticsearch 实现高亮查询操作:

Elasticsearch支持高亮查询操作,可以将查询结果中匹配的关键词标记出来,方便用户快速定位到关键信息。以下是Java语言实现Elasticsearch高亮查询操作的示例代码:

  • 首先,我们需要使用Java Elasticsearch客户端库来连接Elasticsearch集群。在本示例中,我们使用Elasticsearch Java High Level REST Client库来连接Elasticsearch集群。

  • 我们需要定义一个ElasticsearchIndex类来管理Elasticsearch索引。在本示例中,我们使用一个名为"test_index"的索引来进行查询操作。

public class ElasticsearchIndex {
    public static final String INDEX_NAME = "test_index";
}
 

我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:

  • search:使用Elasticsearch Java High Level REST Client库的Search API进行查询操作,并返回高亮结果。

public class ElasticsearchUtil {
    private static final RestHighLevelClient client = new RestHighLevelClient(
            RestClient.builder(new HttpHost("localhost", 9200, "http")));

    public static SearchResponse search(String keyword) throws IOException {
        SearchRequest request = new SearchRequest(ElasticsearchIndex.INDEX_NAME);
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.matchQuery("content", keyword));
        HighlightBuilder highlightBuilder = new HighlightBuilder();
        highlightBuilder.field("content");
        highlightBuilder.preTags("<em>");
        highlightBuilder.postTags("</em>");
        sourceBuilder.highlighter(highlightBuilder);
        request.source(sourceBuilder);
        return client.search(request, RequestOptions.DEFAULT);
    }
}
 

我们可以在Java应用程序中调用ElasticsearchUtil类中的方法来实现Elasticsearch高亮查询功能。例如,当需要查询包含指定关键词的文档时,我们可以调用search方法,并传递关键词。查询结果中匹配的关键词会被标记为<em>和</em>。

下面是一个Java代码示例,演示了如何使用Elasticsearch实现高亮查询:

public class Main {public static void main(String[] args) throws IOException {String keyword = "Elasticsearch";SearchResponse response = ElasticsearchUtil.search(keyword);for (SearchHit hit : response.getHits().getHits()) {String content = hit.getSourceAsMap().get("content").toString();String highlight = hit.getHighlightFields().get("content").fragments()[0].toString();System.out.println("匹配文本:" + content);System.out.println("高亮文本:" + highlight);}}
}

这个示例中,我们演示了如何使用Elasticsearch Java High Level REST Client库实现高亮查询。需要注意的是,使用Elasticsearch需要在Elasticsearch服务器端启用集群模式,并配置好集群节点, 一些小的细节需要注意好 

相关文章:

[elasticsearch 实现插入查询小demo ]

目录 前言: 。以下是Java语言实现Elasticsearch数据插入和批量插入的示例代码&#xff1a; 我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中&#xff0c;我们实现了以下方法&#xff1a; 下面是一个Java代码示例&#xff0c;演示了如何使用Elast…...

因为计算机中丢失VCRUNTIME140怎么办?为什么会丢失VCRUNTIME140.dll

vcruntime140.dll是一个Windows动态链接库&#xff0c;其主要功能是为C/C编译的程序提供运行时支持。这个库在Microsoft Visual Studio 2015中被引入&#xff0c;其名称中的“140”代表版本号。在我们打开运行软件或者游戏程序的时候&#xff0c;电脑提示因为计算机中丢失VCRUN…...

【满分】【华为OD机试真题2023B卷 JAVAJS】数字游戏

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 数字游戏 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 小明玩一个游戏。系统发1+n张牌,每张牌上有一个整数。第一张给小明,后n张按照发牌顺序排成连续的一行。需要小明判断,后n张牌中,是否存在连续的若干张…...

NLP常用的三种中文分词工具对比

本文将对三种中文分词工具进行使用尝试&#xff0c;这三种工具分别为&#xff1a;哈工大的LTP&#xff0c;结巴分词以及北大的pkuseg。 1、准备 首先我们先准备好环境&#xff0c;即需要安装三个模块&#xff1a; pyltpjiebapkusegLTP的分词模型文件cws.model 在用户字典中…...

Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法

一、技术指标 •图像文件格式&#xff1a;DCM、JPG、BMP、TIF等 •可支持显示属性设置&#xff1a;24/32位真彩&#xff1b;256位色&#xff08;黑白&#xff09; •可支持监视器分辨率&#xff1a;1024&#xfe61;768&#xff1b;1280&#xfe61;1024&#xff1b;1600&…...

接口测试介绍以及用例编写

6.1 接口 6.1.1 接口概述 定义&#xff1a; 接口就是API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;&#xff0c;是一个软件或服务对外提供的接口&#xff0c;别人只要调用这接口&#xff0c;而内部如何实现&#xff0c;不需要关心。…...

MATLAB迭代的三种方式以及相关案例举例

系列文章目录 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 系列文章目录 前言 …...

测试替身Test Doubles的5类型(Mockito)

测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑&#xff0c;而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…...

【C++】链表

链表是一种常见的数据结构&#xff0c;用于存储和组织数据。它的每个元素被称为结点&#xff08;Node&#xff09;&#xff0c;结点是链表的基本单位&#xff0c;链表由一系列结点&#xff08;Node&#xff09;组成&#xff0c;每个结点包含两个部分&#xff1a;数据部分&#…...

day42_jsp

今日内容 零、 复习昨日 一、JSP 二、EL 三、JSTL 四、MVC 零、 复习昨日 一、JSP 1.0 引言 现有问题 在之前学习Servlet时&#xff0c;服务端通过Servlet响应客户端页面&#xff0c;有什么不足之处&#xff1f; 开发方式麻烦&#xff1a;继承父类、覆盖方法、配置Web.xml或注…...

JAVA面试八股整理——基础部分

JAVA 基础 JVM JDK JRE JVM java虚拟机&#xff0c;针对不同的系统&#xff0c;使用相同的字节码会给出相同结果。一次编译&#xff0c;随处可运行 JDK Java SDK 提供给开发者使用&#xff0c;创建和编译Java程序。包含了JRE&#xff0c;同时包含了其它工具&#xff08;jav…...

【JavaSE】Java基础语法(二十八):HashSet集合

文章目录 1. HashSet集合概述和特点2. HashSet集合的基本应用3. 哈希值4. HashSet集合存储学生对象并遍历【应用】 1. HashSet集合概述和特点 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历 2. HashSet集合的基本应用 存储字符串并遍历 …...

压缩感知重构之匹配追踪算法

算法的重构是压缩感知中重要的一步&#xff0c;是压缩感知的关键之处。因为重构算法关系着信号能否精确重建&#xff0c;国内外的研究学者致力于压缩感知的信号重建&#xff0c;并且取得了很大的进展&#xff0c;提出了很多的重构算法&#xff0c;每种算法都各有自己的优缺点&a…...

【SpinalHDL快速入门】4.6、复合类型之Vec

文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较&#xff08;Comparison&#xff09;1.3.2、类型转换&#xff08;Type cast&#xff09;1.3.3、杂项&#xff08;Misc&#xff09;1.3.4、Lib辅助函数&#xff08;Lib helper functions&#xff09; 1.1、描述 …...

探访世优科技数字人虚拟直播产品体系 | 世优开放日再次成功举行

2023年5月30日&#xff0c;世优科技全栈技术产品体验活动&#xff08;第二期&#xff09;顺利落下帷幕。此次活动共邀请到30余位各行各业的嘉宾到场&#xff0c;在两个多小时的开放日活动中&#xff0c;世优科技全面展示数字人及虚拟直播领域的技术产品体系。来访嘉宾们全程体验…...

有奖励!2023陕西省首台(套)重大技术装备产品项目申报条件、认定材料

本文整理了2023陕西省首台&#xff08;套&#xff09;重大技术装备产品项目申报条件&#xff0c;认定材料等相关内容&#xff0c;感兴趣的朋友快跟小编一起来看看吧&#xff01; 一、重点支持方向及领域 重点支持方向及领域&#xff1a;高档工业母机、电力装备、大型矿山和冶金…...

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…...

api习题

// 1 整数或者小数 // String a"378.000"; // String rex"[1-9]\\d*|[0-9]|*\\.[0-9]*"; // System.out.println(a.matches(rex)); // 2 只能输入数字&#xff1a; // String rex"\\b*"; // 3 只能输入n位的数字&#xff1a; // String r…...

(STL之string)string类的用法详解

string类成员函数PART1 成员函数(构造函数拷贝构造函数)&#xff1a;string 函数原型&#xff1a; string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (const char* s, size_t n)…...

基于RT-Thread快速上手SD NAND 虚拟文件系统

SD NAND 也称之为贴片式TF卡&#xff0c;贴片式SD卡&#xff0c;采用标准的SDIO接口&#xff0c;兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M&#xff0c;对比128M的SD卡&#xff0c;可以看到贴片SD卡尺寸更小&#xff0c;不要SD卡座&#xff0c;占…...

[qemu+kvm]: vfio调用流程

透传pcie设备全流程&#xff1a; QEMU测&#xff1a;vfio_realize->-> vfio_get_group->open("/dev/vfio/group id")-> 进入内核态->vfio_group_fops_open //分配group&#xff0c; filep->private_data group;注意&#xff1a;/dev/vfio/group …...

Claude Citations API 实战:让模型自动标注引用来源,RAG 准确率提升 15%

Claude Citations API 实战&#xff1a;让模型自动标注引用来源&#xff0c;RAG 准确率提升 15% 做 RAG&#xff08;检索增强生成&#xff09;的工程师都遇到过这种灵魂提问&#xff1a; “你这个回答到底是从哪段文档里得出来的&#xff1f;” 这个问题之所以致命&#xff0c…...

别再重复造轮子!用PADS自带转换器+立创EDA,5分钟搞定原理图符号同步

高效复用立创EDA资源&#xff1a;PADS原理图符号同步实战指南 在硬件设计领域&#xff0c;重复绘制原理图符号堪称工程师的"时间黑洞"。当你在立创EDA上发现完美的元器件模型时&#xff0c;为何还要在PADS中从零开始&#xff1f;本文将揭示一套被多数人忽视的PADS原生…...

3步解锁QQ音乐格式限制:qmcflac2mp3让你的音乐随处可听

3步解锁QQ音乐格式限制&#xff1a;qmcflac2mp3让你的音乐随处可听 【免费下载链接】qmcflac2mp3 直接将qmcflac文件转换成mp3文件&#xff0c;突破QQ音乐的格式限制 项目地址: https://gitcode.com/gh_mirrors/qm/qmcflac2mp3 你是否曾经遇到过这样的烦恼&#xff1a;从…...

盒子不同定位的解说!

目录 一、相对定位 二、绝对定位 三、固定定位 一、相对定位 【概念】&#xff1a;简单来说&#xff0c;就是让一个元素相对于它自己原本应该在的位置进行移动。 【核心特点】&#xff1a;1.不脱离文档流&#xff1a;这是相对定位最关键的特点。元素虽然移动了&#xff0c…...

【权威实测报告】:在137组对比测试中,仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果(附完整prompt审计清单)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;【权威实测报告】&#xff1a;在137组对比测试中&#xff0c;仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果&#xff08;附完整prompt审计清单&#xff09; 为验证当前主流AI图像生成模型…...

告别Wi-Fi卡顿!手把手教你读懂802.11ax的BSR机制,优化家庭网络上行体验

告别Wi-Fi卡顿&#xff01;手把手教你读懂802.11ax的BSR机制&#xff0c;优化家庭网络上行体验 你是否经历过这样的场景&#xff1a;视频会议时画面突然卡成马赛克&#xff0c;游戏团战时操作延迟飙升&#xff0c;或是上传文件进度条像蜗牛爬行&#xff1f;这些恼人的问题往往源…...

魔百盒CM311-1s刷机后体验:安卓9.0固件到底香不香?附5621DS无线实测

魔百盒CM311-1s刷机实战&#xff1a;安卓9.0系统深度评测与无线性能揭秘 当手中的魔百盒CM311-1s遇上安卓9.0系统&#xff0c;这场硬件与软件的碰撞会擦出怎样的火花&#xff1f;作为一款搭载S905L3B芯片的电视盒子&#xff0c;其原生系统往往受限于运营商定制化限制&#xff0…...

从审稿人到作者:我审了10篇论文后,总结出的5个投稿避坑指南和3个加分项

从审稿人到作者&#xff1a;10篇论文审阅经验提炼的5大避坑策略与3个关键加分项 第一次收到审稿邀请时&#xff0c;我正对着自己第三篇被拒的论文修改意见发呆。这种身份错位带来的震撼&#xff0c;让我开始系统记录审稿笔记——如今这些笔记已形成超过2万字的"审稿人思维…...

强化学习回报归一化:ARN方法原理与SFC分区实践

1. 强化学习中的回报归一化&#xff1a;理论与实现在深度强化学习&#xff08;DRL&#xff09;的实际应用中&#xff0c;训练稳定性一直是困扰研究者的核心难题。特别是在处理服务功能链&#xff08;SFC&#xff09;分区等复杂网络编排任务时&#xff0c;由于任务周期长、状态空…...