[elasticsearch 实现插入查询小demo ]
目录
前言:
。以下是Java语言实现Elasticsearch数据插入和批量插入的示例代码:
我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:
下面是一个Java代码示例,演示了如何使用Elasticsearch实现数据插入和批量插入:
依赖:
elasticsearch 实现高亮查询操作:
我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法:
下面是一个Java代码示例,演示了如何使用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操作。在本示例中,我们实现了以下方法:
- 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数据插入和批量插入的示例代码: 我们需要定义一个ElasticsearchUtil类来封装Elasticsearch操作。在本示例中,我们实现了以下方法: 下面是一个Java代码示例,演示了如何使用Elast…...

因为计算机中丢失VCRUNTIME140怎么办?为什么会丢失VCRUNTIME140.dll
vcruntime140.dll是一个Windows动态链接库,其主要功能是为C/C编译的程序提供运行时支持。这个库在Microsoft Visual Studio 2015中被引入,其名称中的“140”代表版本号。在我们打开运行软件或者游戏程序的时候,电脑提示因为计算机中丢失VCRUN…...
【满分】【华为OD机试真题2023B卷 JAVAJS】数字游戏
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 数字游戏 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 小明玩一个游戏。系统发1+n张牌,每张牌上有一个整数。第一张给小明,后n张按照发牌顺序排成连续的一行。需要小明判断,后n张牌中,是否存在连续的若干张…...
NLP常用的三种中文分词工具对比
本文将对三种中文分词工具进行使用尝试,这三种工具分别为:哈工大的LTP,结巴分词以及北大的pkuseg。 1、准备 首先我们先准备好环境,即需要安装三个模块: pyltpjiebapkusegLTP的分词模型文件cws.model 在用户字典中…...

Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法
一、技术指标 •图像文件格式:DCM、JPG、BMP、TIF等 •可支持显示属性设置:24/32位真彩;256位色(黑白) •可支持监视器分辨率:1024﹡768;1280﹡1024;1600&…...

接口测试介绍以及用例编写
6.1 接口 6.1.1 接口概述 定义: 接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。…...
MATLAB迭代的三种方式以及相关案例举例
系列文章目录 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 系列文章目录 前言 …...

测试替身Test Doubles的5类型(Mockito)
测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑,而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…...
【C++】链表
链表是一种常见的数据结构,用于存储和组织数据。它的每个元素被称为结点(Node),结点是链表的基本单位,链表由一系列结点(Node)组成,每个结点包含两个部分:数据部分&#…...

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

JAVA面试八股整理——基础部分
JAVA 基础 JVM JDK JRE JVM java虚拟机,针对不同的系统,使用相同的字节码会给出相同结果。一次编译,随处可运行 JDK Java SDK 提供给开发者使用,创建和编译Java程序。包含了JRE,同时包含了其它工具(jav…...

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

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

【SpinalHDL快速入门】4.6、复合类型之Vec
文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较(Comparison)1.3.2、类型转换(Type cast)1.3.3、杂项(Misc)1.3.4、Lib辅助函数(Lib helper functions) 1.1、描述 …...

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

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

2023/6/6总结
CSS 如果想要实现背景颜色渐变效果: left是从左边开始,如果想要对角线比如,左上角就是left top,渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页: html代码: <!…...
api习题
// 1 整数或者小数 // String a"378.000"; // String rex"[1-9]\\d*|[0-9]|*\\.[0-9]*"; // System.out.println(a.matches(rex)); // 2 只能输入数字: // String rex"\\b*"; // 3 只能输入n位的数字: // String r…...

(STL之string)string类的用法详解
string类成员函数PART1 成员函数(构造函数拷贝构造函数):string 函数原型: 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卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...