秦皇岛做网站外包/今日要闻新闻

秦皇岛做网站外包,今日要闻新闻,四川建设人才网官网首页,融资平台公司ES的java操作 一、添加依赖 在pom文件中添加依赖包 <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!-- elastic…

ES的java操作

一、添加依赖

在pom文件中添加依赖包

    <dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!-- elasticsearch 客户端 --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.8.0</version></dependency><!-- elasticsearch 依赖 2.x 的 log4j --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.11.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.11.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.9</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>

二、基本框架

package com.wbb.es;import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;public class Elasticsearch_Client {public static void main(String[] args) throws Exception {// 创建ES客户端RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));/*中间要做的事儿*/// 关闭ES客户端client.close();}
}

三、索引操作

3.1 创建

创建索引 test_java

// 创建索引
CreateIndexRequest request = new CreateIndexRequest("test_java");
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);// 响应状态
boolean acknowledged = createIndexResponse.isAcknowledged();
System.out.println("操作转态 :" + acknowledged);

3.2 查看

// 查询索引
GetIndexRequest request = new GetIndexRequest("test_java");
// 发送请求
GetIndexResponse response = client.indices().get(request,RequestOptions.DEFAULT);
System.out.println("aliases:"+response.getAliases());
System.out.println("mappings:"+response.getMappings());
System.out.println("settings:"+response.getSettings());

输出内容

aliases:{test_java=[]}
mappings:{test_java=org.elasticsearch.cluster.metadata.MappingMetadata@e2fe038d}
settings:{test_java={"index.creation_date":"1739345734421","index.number_of_replicas":"1","index.number_of_shards":"1","index.provided_name":"test_java","index.uuid":"R-2HSigUTCSH1mG9kiowrg","index.version.created":"7080099"}}

3.2 删除索引

// 删除索引 - 请求对象
DeleteIndexRequest request = new DeleteIndexRequest("test_java");
// 发送请求,获取响应
AcknowledgedResponse response = client.indices().delete(request,RequestOptions.DEFAULT);
// 操作结果
System.out.println("操作结果 : " + response.isAcknowledged());

四、文档操作

创建javabean

快捷键:定义属性后 ctrl + shift + a,选择 Generate …alt + insert,选择对应的getter和setter

package com.wbb.es;public class test_es {private String name;private Integer age;private String sex;public void setName(String name) {this.name = name;}public void setAge(Integer age) {this.age = age;}public void setSex(String sex) {this.sex = sex;}public String getName() {return name;}public Integer getAge() {return age;}public String getSex() {return sex;}}

4.1创建

4.1.1 添加单个文档

在索引 test_java下添加文档编号为001的文档

// 1、新增文档 - 请求对象
IndexRequest request = new IndexRequest();
// 2、设置索引及唯一性标识
request.index("test_java").id("001");
// 3、创建数据对象
Test_es test_es = new Test_es();
test_es.setName("tianxuanzhizi");
test_es.setAge(30);
test_es.setSex("男");
ObjectMapper objectMapper = new ObjectMapper();
String productJson = objectMapper.writeValueAsString(test_es);
// 4、添加文档数据,数据格式为 JSON 格式
request.source(productJson, XContentType.JSON);
// 5、客户端发送请求,获取响应对象
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
// 打印结果信息
System.out.println("_index:" + response.getIndex());
System.out.println("_id:" + response.getId());
System.out.println("_result:" + response.getResult());

输出信息

_index:test_java
_id:001
_result:CREATED
4.1.2 添加多个文档
//创建批量新增请求对象
BulkRequest request = new BulkRequest();
request.add(new IndexRequest().index("test_java").id("001").source(XContentType.JSON, "name","tianxuanzhizi001", "age", 30, "sex", "男"));
request.add(new IndexRequest().index("test_java").id("002").source(XContentType.JSON, "name","tianxuanzhizi002", "age", 31, "sex", "女"));
//客户端发送请求,获取响应对象
BulkResponse responses = client.bulk(request, RequestOptions.DEFAULT);
//打印结果信息
System.out.println("took:" + responses.getTook());
System.out.println("items:" + responses.getItems());

输出结果

took:198ms
items:[Lorg.elasticsearch.action.bulk.BulkItemResponse;@5609159b

4.2 修改

修改 test_java索引下,id为 001 的文档,sex为”未知“

// 1、修改文档 - 请求对象
UpdateRequest request = new UpdateRequest();
// 2、配置修改参数
request.index("test_java").id("001");
// 3、设置请求体,对数据进行修改
request.doc(XContentType.JSON, "sex", "未知");
// 客户端发送请求,获取响应对象
UpdateResponse response = client.update(request, RequestOptions.DEFAULT);
System.out.println("_index:" + response.getIndex());
System.out.println("_id:" + response.getId());
System.out.println("_result:" + response.getResult());

输出信息

_index:test_java
_id:001
_result:UPDATED

4.3 查看

//1.创建请求对象
GetRequest request = new GetRequest().index("test_java").id("001");
//2.客户端发送请求,获取响应对象
GetResponse response = client.get(request, RequestOptions.DEFAULT);
//3.打印结果信息
System.out.println("_index:" + response.getIndex());
System.out.println("_type:" + response.getType());
System.out.println("_id:" + response.getId());
System.out.println("source:" + response.getSourceAsString());

输出结果

_index:test_java
_type:_doc
_id:001
source:{"name":"tianxuanzhizi","age":30,"sex":"未知"}

4.4 删除

4.4.1 删除单个文档
//1、创建请求对象
DeleteRequest request = new DeleteRequest().index("test_java").id("001");
//2、客户端发送请求,获取响应对象
DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);
//打印信息
System.out.println(response.toString());

输出信息

DeleteResponse[index=test_java,type=_doc,id=001,version=3,result=deleted,shards=ShardInfo{total=2, successful=1, failures=[]}]
4.4.2 删除多个文档
//创建批量删除请求对象
BulkRequest request = new BulkRequest();
request.add(new DeleteRequest().index("test_java").id("001"));
request.add(new DeleteRequest().index("test_java").id("002"));
//客户端发送请求,获取响应对象
BulkResponse responses = client.bulk(request, RequestOptions.DEFAULT);
//打印结果信息
System.out.println("took:" + responses.getTook());
System.out.println("items:" + responses.getItems());
System.out.println("items:" + responses.getItems());

输出信息

took:201ms
items:[Lorg.elasticsearch.action.bulk.BulkItemResponse;@7c9d8e2
items:[Lorg.elasticsearch.action.bulk.BulkItemResponse;@7c9d8e2

4.5 查询

4.5.1 查询的基本框架
package com.wbb.es;import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;public class Elasticsearch_Client {public static void main(String[] args) throws Exception {// 创建ES客户端RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));// 创建搜索请求对象SearchRequest request = new SearchRequest();request.indices("test_java");// 构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();/*查询设置*/request.source(sourceBuilder); SearchResponse response = client.search(request, RequestOptions.DEFAULT);// 查询匹配SearchHits hits = response.getHits();System.out.println("took:" + response.getTook());System.out.println("timeout:" + response.isTimedOut());System.out.println("total:" + hits.getTotalHits());System.out.println("MaxScore:" + hits.getMaxScore());System.out.println("========doc=========");for (SearchHit hit : hits) {//输出每条查询的结果信息System.out.println(hit.getSourceAsString());}// 关闭ES客户端client.close();}
}
4.5.1 查询所有文档
sourceBuilder.query(QueryBuilders.matchAllQuery());

输出信息

took:2ms
timeout:false
total:2 hits
MaxScore:1.0
========doc=========
{"name":"tianxuanzhizi001","age":30,"sex":"男"}
{"name":"tianxuanzhizi002","age":31,"sex":"女"}
4.5.2 按照字段名进行查询
sourceBuilder.query(QueryBuilders.termQuery("age", "30"));

输出

took:3ms
timeout:false
total:1 hits
MaxScore:1.0
========doc=========
{"name":"tianxuanzhizi001","age":30,"sex":"男"}
4.5.3 分页查询
sourceBuilder.query(QueryBuilders.matchAllQuery());
// 分页查询
// 分页起始位置(第一条数据的顺序号)
sourceBuilder.from(0);
// 每页显示多少条
sourceBuilder.size(2);

输出

took:2ms
timeout:false
total:2 hits
MaxScore:1.0
========doc=========
{"name":"tianxuanzhizi001","age":30,"sex":"男"}
{"name":"tianxuanzhizi002","age":31,"sex":"女"}
4.5.4 排序查询

按照年龄排序

sourceBuilder.query(QueryBuilders.matchAllQuery());
sourceBuilder.sort("age", SortOrder.ASC);
4.5.5 过滤字段
sourceBuilder.query(QueryBuilders.matchAllQuery());
// 只查看 name 和 age
String[] excludes = {}; 
String[] includes = {"name", "age"}; 
sourceBuilder.fetchSource(includes, excludes); 
4.5.6 组合查询
// 构建查询的请求体
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 必须包含
boolQueryBuilder.must(QueryBuilders.matchQuery("age", "30"));
// 一定不含
boolQueryBuilder.mustNot(QueryBuilders.matchQuery("name", "bug"));
// 可能包含
boolQueryBuilder.should(QueryBuilders.matchQuery("sex", "男"));sourceBuilder.query(boolQueryBuilder);

输出结果

took:3ms
timeout:false
total:1 hits
MaxScore:1.6931472
========doc=========
{"name":"tianxuanzhizi001","age":30,"sex":"男"}
4.5.7 范围查询
RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age");
// 大于等于
rangeQuery.gte("30");
// 小于等于
rangeQuery.lte("40");
sourceBuilder.query(rangeQuery);
4.5.8 模糊查询
sourceBuilder.query(QueryBuilders.fuzzyQuery("name","tianxuanzhizi").fuzziness(Fuzziness.ONE));
4.5.9 高亮查询
//构建查询方式:高亮查询
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("name","tianxuanzhizi001");
//设置查询方式
sourceBuilder.query(termsQueryBuilder);
//构建高亮字段
HighlightBuilder highlightBuilder = new HighlightBuilder();
highlightBuilder.preTags("<font color='red'>");//设置标签前缀
highlightBuilder.postTags("</font>");//设置标签后缀
highlightBuilder.field("name");//设置高亮字段
//设置高亮构建对象
sourceBuilder.highlighter(highlightBuilder);

输出前设置高亮颜色

//打印高亮结果 Map<String, HighlightField> highlightFields = hit.getHighlightFields()System.out.println(highlightFields);;

查询结果

took:171ms
timeout:false
total:1 hits
MaxScore:1.0
========doc=========
{name=[name], fragments[[<font color='red'>tianxuanzhizi001</font>]]}
4.5.9 聚合查询

查询最大年龄

sourceBuilder.aggregation(AggregationBuilders.max("maxAge").field("age"));

输出response

System.out.println(response);    

输出结果

{"took":2,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"test_java","_type":"_doc","_id":"001","_score":1.0,"_source":{"name":"tianxuanzhizi001","age":30,"sex":"男"}},{"_index":"test_java","_type":"_doc","_id":"002","_score":1.0,"_source":{"name":"tianxuanzhizi002","age":31,"sex":"女"}}]},"aggregations":{"max#maxAge":{"value":31.0}}}
4.5.10 分组聚合

按性别分组

sourceBuilder.aggregation(AggregationBuilders.terms("age_groupby").field("age"));

输出response

System.out.println(response);    

输出结果

{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"test_java","_type":"_doc","_id":"001","_score":1.0,"_source":{"name":"tianxuanzhizi001","age":30,"sex":"男"}},{"_index":"test_java","_type":"_doc","_id":"002","_score":1.0,"_source":{"name":"tianxuanzhizi002","age":31,"sex":"女"}}]},"aggregations":{"lterms#age_groupby":{"doc_count_error_upper_bound":0,"sum_other_doc_count":0,"buckets":[{"key":30,"doc_count":1},{"key":31,"doc_count":1}]}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞书专栏-TEE文档

CSDN学院课程连接&#xff1a;https://edu.csdn.net/course/detail/39573

2025.2.11——一、[极客大挑战 2019]PHP wakeup绕过|备份文件|代码审计

题目来源&#xff1a;BUUCTF [极客大挑战 2019]PHP 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;目录扫描、爆破 step 2&#xff1a;代码审计 1.index.php 2.class.php 3.flag.php step 3&#xff1a;绕过__wakeup重置 ​编辑 三、小结…

考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)

目录 操作系统的概念定义功能和目标 操作系统的四个特征 操作系统的分类 ​编辑 操作系统的运行机制 系统调用 操作系统体系结构 操作系统引导 虚拟机 操作系统的概念定义功能和目标 什么是操作系统&#xff1a; 操作系统是指控制和管理整个计算机系统的软硬件资源&…

DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?

随着人工智能技术的飞速发展&#xff0c;大模型领域不断涌现出具有创新性的成果。DeepSeek 的横空出世&#xff0c;为 AI 大模型领域带来了新的变革浪潮。本文将深入探讨 DeepSeek 出现后 AI 大模型面临的危机与转机。 冲冲冲&#xff01;&#xff01;&#xff01; 目录 一、…

JVM的类加载器

什么是类加载器&#xff1f; 类加载器&#xff1a;JVM只会运行二进制文件&#xff0c;类加载器的作用就是将字节码文件加载到JVM中&#xff0c;从而Java 程序能够启动起来。 类加载器有哪些&#xff1f; 启动类加载器(BootStrap ClassLoader):加载JAVA HOME/jre/lib目录下的库…

web前端开发中vscode常用的快捷键

1.快速复制一行 快捷键&#xff1a; shiftalt 下箭头(上箭头) 或者 ctrlc 然后 ctrlv 2.选定多个相同的单词 快捷键&#xff1a; ctrl d 先双击选定一个单词&#xff0c;然后按下 ctrl d 可以往下依次选择相同的单词。 这样同时修改相同的单词 3.全局替换某单词 当我们一个…

Jenkins 部署 之 Mac 一

Jenkins 部署 之 Mac 一 一.Jenkins 部署依赖 JDK 环境 查看 Mac JDK 环境&#xff0c;如果没有安装&#xff0c;先安装 打开终端输入命令:java -version Mac安装配置 JDK 二. 检查 HomeBrew 安装 检查 HomeBrew 是否安装&#xff0c;终端输入命令:brew -v Mac安装HomeB…

鸿蒙HarmonyOS NEXT开发:优化用户界面性能——组件复用(@Reusable装饰器)

文章目录 一、概述二、原理介绍三、使用规则四、复用类型详解1、标准型2、有限变化型2.1、类型1和类型2布局不同&#xff0c;业务逻辑不同2.2、类型1和类型2布局不同&#xff0c;但是很多业务逻辑公用 3、组合型4、全局型5、嵌套型 一、概述 组件复用是优化用户界面性能&#…

【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库

文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…

更加通用的Hexo多端部署原理及实现,适用于各种系统之间

本文推荐在作者的个人博客网站阅读&#xff1a;shenying.online 一、故事背景 故事发生在大学上学期间&#xff08;而不是寒假&#xff09;。上学期间&#xff0c;宿舍条件极其恶劣&#xff0c;半夜断电、空间狭小。我们大学垃圾条件使用游戏本的种种弊端被无限放大&#xff1…

开源、免费项目管理工具比较:2025最新整理30款

好用的开源、免费版项目管理系统有&#xff1a;1.Redmine&#xff1b;2. Taiga&#xff1b;3. OpenProject&#xff1b; 4.ProjectLibre&#xff1b; 5.GanttProject&#xff1b; 6.Tuleap&#xff1b; 7.Trac&#xff1b;8. Phabricator&#xff1b; 9.Notion&#xff1b; 10.…

组织结构改革:激活企业活力的 “源头活水”

难以适应市场变化、内部沟通与协作不畅、决策效率低下、运营成本增加、人才流失严重、员工士气下降、战略目标难以实现……企业如何根据市场环境变化和自身发展需求&#xff0c;灵活调整组织框架&#xff0c;赋能企业的持续健康发展&#xff1f; 某国有投资建设集团旗下的二级…

Mac之JDK安装

Mac之JDK安装 一.安装 jdk 打开终端输入命令:java -version 查看是否已安装 JDK Oracle 官方下载地址 根据自己Mac 系统安装 查看 Mac 系统&#xff0c;打开中断命令&#xff0c;输入: uname -a Compressed Archive 是压缩文档&#xff0c;下载的是一个 .tar.gz 压缩包 D…

【含文档+PPT+源码】基于Python的全国景区数据分析以及可视化实现

项目介绍 本课程演示的是一款基于Python的全国景区数据分析以及可视化实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该…

SQL注入之布尔和时间盲注,sqli-labs

实验环境&#xff1a; sqli-labs&#xff0c;小皮面板搭建&#xff0c;edge浏览器 apache&#xff1a;2.4.39&#xff0c;MySQL&#xff1a;5.7 PHP&#xff1a;5.39 Python&#xff08;pycharm2023&#xff09;:3 less-8 布尔盲注&#xff1a; 1.我这里是采用最简单的直接采…

基于SSM的农产品供销小程序+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、农户功能模块&#xff1a;用户管理、农户管理、产品分类管理、农产品管理、咨询管理、订单管理、收藏管理、购物车、充值、下单等技术选型&#xff1a;SSM&#xff0c;Vue&#xff08;后端管理web&#xff09;&#xff0c;uniapp等测试…

前端可以不用依赖后端实现导出大数据了

theme: channing-cyan hightlight: channing-cyan 前言 在我们公司表格数据导出都是前端去处理。一开始数据量不大&#xff0c;倒没什么问题。但随着数据量的加大&#xff0c;问题也逐渐暴露出来。 一天的数据量有一来万条&#xff0c;导出一定时间范围的数据&#xff0c;30…

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板&#xff1a;制作一些光场(Light Field) 当前的目标是为游戏添加光照系统&#xff0c;并已完成了法线映射&#xff08;normal maps&#xff09;的管道&#xff0c;但还没有创建可以供这些正常映射采样的光场。为了继续推进&…

通过 Docker 安装和部署 KeyDB v6.3.4 的详细步骤

KeyDB 是一种高性能的开源内存数据库&#xff0c;最初是基于 Redis 项目开发的&#xff0c;但在性能、特性和功能上进行了许多增强和改进。它兼容 Redis 的大部分命令和数据结构&#xff0c;因此可以作为 Redis 的替代品使用&#xff0c;尤其是在需要更高性能和多线程支持的场景…

Android Studio 打包App问题

一、场景 windows 电脑C 盘空间越来越少&#xff0c;所有软件默认位置都往C盘用户目录写入数据&#xff0c;于是开始准备整理&#xff0c;Android Studio 相关的 .android 和 .gradle 目录成为了目标。 二、问题出现 1、将C盘的.gradle 目录拷贝到D盘&#xff0c;文件比较大&a…