05 2023 档案

摘要:AMQP介绍 AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议 的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中 间件不同产品,不同的开发语言等条件的限制。2006年, 阅读全文
posted @ 2023-05-29 15:25 JustJavaIt 阅读(22) 评论(0) 推荐(0) 编辑
摘要:我们在Centos8虚拟机中使用Docker来安装。 下载镜像 方式一:在线拉取 方式二:从本地加载 下载tar镜像包,上传到虚拟机到某个目录: docker images 使用命令加载镜像 docker load -i mq.tar 安装MQ 执行下面的命令来运行MQ容器: 解释 docker r 阅读全文
posted @ 2023-05-29 14:07 JustJavaIt 阅读(44) 评论(0) 推荐(0) 编辑
摘要:聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。 聚合的种类 聚合常见 阅读全文
posted @ 2023-05-24 16:26 JustJavaIt 阅读(235) 评论(0) 推荐(1) 编辑
摘要:排序、分页 搜索结果的排序和分页是与query同级的参数,因此同样是使用request.source()来设置。 对应的API如下: 完整代码示例 1 @Test 2 void testSortAndPage() throws IOException { 3 int page = 2, size = 阅读全文
posted @ 2023-05-23 15:21 JustJavaIt 阅读(42) 评论(0) 推荐(0) 编辑
摘要:match查询 全文检索的match和multi_match查询与match_all的API基本一致。差别是查询条件,也就是query的部分。 因此,Java代码上的差异主要是request.source().query()中的参数了。同样是利用QueryBuilders提供的方法: 而结果解析代码 阅读全文
posted @ 2023-05-23 14:57 JustJavaIt 阅读(36) 评论(0) 推荐(0) 编辑
摘要:我们以match_all查询为例 发起查询请求 代码解读 第一步,创建SearchRequest对象,指定索引库名 第二步,利用request.source()构建DSL,DSL中可以包含查询、分页、排序、高亮等 query():代表查询条件,利用QueryBuilders.matchAllQuer 阅读全文
posted @ 2023-05-23 14:37 JustJavaIt 阅读(29) 评论(0) 推荐(0) 编辑
摘要:高亮原理 我们在百度,京东搜索时,关键字会变成红色,比较醒目,这叫高亮显示: 高亮显示的实现分为两步: 1)给文档中的所有关键字都添加一个标签,例如<em>标签 2)页面给<em>标签编写CSS样式 实现高亮 语法 注意 高亮是对关键字高亮,因此搜索条件必须带有关键字,而不能是范围这样的查询。 默认 阅读全文
posted @ 2023-05-23 11:42 JustJavaIt 阅读(110) 评论(0) 推荐(0) 编辑
摘要:elasticsearch 默认情况下只返回top10的数据。而如果要查询更多数据就需要修改分页参数了。 elasticsearch中通过修改from、size参数来控制要返回的分页结果: from:从第几个文档开始 size:总共查询几个文档 类似于mysql中的limit ?, ? 基本的分页 阅读全文
posted @ 2023-05-23 11:28 JustJavaIt 阅读(65) 评论(0) 推荐(0) 编辑
摘要:搜索的结果可以按照用户指定的方式去处理或展示。 排序 elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 普通字段排序 keyword、数值、日期类型排序的语法基本一致 阅读全文
posted @ 2023-05-22 15:28 JustJavaIt 阅读(72) 评论(0) 推荐(0) 编辑
摘要:布尔查询是一个或多个查询子句的组合,每一个子句就是一个子查询。子查询的组合方式有: (1)must:必须匹配每个子查询,类似“与” (2)should:选择性匹配子查询,类似“或” (3)must_not:必须不匹配,不参与算分,类似“非” (4)filter:必须匹配,不参与算分 比如在搜索酒店时 阅读全文
posted @ 2023-05-22 14:24 JustJavaIt 阅读(78) 评论(0) 推荐(0) 编辑
摘要:复合(compound)查询:复合查询可以将其它简单查询组合起来,实现更复杂的搜索逻辑。常见的有两种: (1)fuction score:算分函数查询,可以控制文档相关性算分,控制文档排名 (2)bool query:布尔查询,利用逻辑关系组合多个其它的查询,实现复杂搜索 相关性算分 当我们利用ma 阅读全文
posted @ 2023-05-22 11:42 JustJavaIt 阅读(137) 评论(0) 推荐(0) 编辑
摘要:所谓的地理坐标查询,其实就是根据经纬度查询,官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-queries.html 常见的使用场景包括: 携程:搜索我附近的酒店 滴滴:搜索我附近的出租车 微信:搜索我 阅读全文
posted @ 2023-05-19 16:27 JustJavaIt 阅读(73) 评论(0) 推荐(0) 编辑
摘要:精确查询一般是查找keyword、数值、日期、boolean等类型字段。不会对搜索条件分词。常见的有:(1) term:根据词条精确值查询 (2) range:根据值的范围查询 term查询 因为精确查询的字段搜是不分词的字段,因此查询的条件也必须是不分词的词条。查询时,用户输入的内容跟自动值完全匹 阅读全文
posted @ 2023-05-19 15:51 JustJavaIt 阅读(86) 评论(0) 推荐(0) 编辑
摘要:@BeforeEach @BeforeEach 是 JUnit 测试框架中的一个注解,用于在每个测试方法运行之前执行一段代码或初始化操作。当你在测试类中使用 @BeforeEach 注解修饰一个方法时,该方法会在每个测试方法执行之前被调用一次。它可以用来设置测试环境、初始化测试数据或执行其他必要的准 阅读全文
posted @ 2023-05-18 10:52 JustJavaIt 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Doug Lea 是 Java 并发编程领域的知名专家,他曾经是 Java 并发包的主要设计者之一,也是 Java 并发编程的重要贡献者。对于 ConcurrentHashMap 不允许插入 null 值的问题,有人问过 Doug Lea,以下是他回复的邮件内容: 1 The main reason 阅读全文
posted @ 2023-05-09 10:56 JustJavaIt 阅读(243) 评论(0) 推荐(0) 编辑
摘要:需求背景 在实际项目中,好比在一个简单的订单处理系统,其中订单有不同的状态(比如新建、已支付、已发货、已收货等),为了实现基于状态机的逻辑处理,我们可以通过switch(状态)去对应不同状态的处理逻辑。 1 public String process2() { 2 switch (status) { 阅读全文
posted @ 2023-05-05 13:59 JustJavaIt 阅读(147) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示