Elasticsearch 检索性能优化

前言 ElasticSearch 是当前使用场景比较多的全文检索数据库,可以用到搜广推业务、日志监控、数据可视化等。既然是数据库就无法避免的会遇到查询性能问题,本篇文章

2024/12/20
articleCard.readMore

舆情监控系统综述

前言 当下是一个自媒体的时代,我们每个人都处于舆论场中,微博、抖音、快手、小红书等平台是言论的载体,那这些现代化的平台都有几个特点: 发布简单、

2024/11/25
articleCard.readMore

2024 半年度总结

2024 已过半,上周完成转正汇报,算是松了一口气。现在不是那种全民创业的时代了,互联网进入了一个新的时代,不与时俱进就会被淘汰。有句话说的好,唯一

2024/6/5
articleCard.readMore

2023 年终总结

今年经历了很多事情,但最后结局还算可以。 工作 22年部门换了新的领导,要求越来越多,管的越来越严,刚进来时是产品总监的岗位,凭着”个人本事“飞

2024/1/1
articleCard.readMore

异地机器组网方案

最近要自己做一些项目,需要用到 k8s,自己单机搭建比较耗费性能,于是就利用其他资源:一个台式机、一台笔记本、一台阿里云 ECS,那怎么将这三台

2023/5/23
articleCard.readMore

Kubernetes 部署 Elasticsearch 和 Kibana

Elastic 官方提供了 QuickStart 让我们简单快速的在本地部署 ElasticSearch,基于 Kubernetes Operator 模式,自动化的部署应用。 当前验证版本: ECK 2.6 Mac Docker Desktop 4.15.0 Docker Engine: 20.10.21 Kubernetes: 1.25.2 部署

2023/1/25
articleCard.readMore

2022 年终总结

2022 年是很坎坷的一年,疫情大爆发,居家隔离已经是常态,小区被封、单元楼被封也经常遇到,搞得人心惶惶,到年末防疫政策全部放开,经济开始慢慢复苏,

2022/12/31
articleCard.readMore

RabbitMQ connection channel 的关系

Rabbit java client 发送消息代码如下 1 2 3 4 5 6 7 8 Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); AMQP.BasicProperties basicProperties = new AMQP.BasicProperties().builder() .messageId(UUID.randomUUID().toString()) .build(); channel.basicPublish("biz","dev.hello",false,basicProperties,"Hello World".getBytes()); channel.close(); connection.close(); 对于 AMQP 0-9-1 网络连接,一个客户端会与 Broker 建立一个 Tcp 长连接(Connec

2022/9/7
articleCard.readMore

Kafka Java 客户端 Producer 原理分析

Kafka 是我认为最值得深入研究的一个消息队列,它的官方文档写的非常详尽,从配置到使用,从设计到实现无不体现研发的技术功底。 Kafka 已经发展到 3.x 时代,增加

2022/6/6
articleCard.readMore

RabbitMQ 和 Kafka 应用原理简单对比

在实际工作中用到了 RabbitMQ 和 Kafka,本篇文章围绕二者在使用上的一些认知进行展开,不涉及技术细节,仅做实践上的参考。 RabbitMQ 多用于处理业务系统之间的信

2022/5/29
articleCard.readMore

阿里云 OpenSearch 介绍

阿里云 OpenSearch 是一款基于 Ha3 引擎研发的商用搜索产品。在使用上给我的个人感受可以说 OpenSearch 是一套企业级搜索的完整解决方案的落地。下面我们来看一下 OpenSearch 有哪些功能

2022/5/27
articleCard.readMore

Golang Array 和 Slice 区别

开始学习 Golang 时,对于 array 和 slice 的理解并不深入,还有很多疑惑的困扰着我。于是就深入的研究了一下。 Array 与 Slice 的 区别 array 是固定长度的,声明时必须是常量大小,定

2022/4/22
articleCard.readMore

Mac OS 下打造 golang nvim 编程环境之基础配置

目的 为了提升编程效率,本着少即是多的原则,开始打造自己的精兵利器。 先看效果 使用 vim 的好处就是不需要再依赖于鼠标或者妙控板之类的外设,能专注于编

2022/3/29
articleCard.readMore

电商搜索技术总结

回顾 本篇文章我们针对于上文”电商搜索业务总结“中的业务需求进行拆解,并以技术角度进行分析。 对于关系好的商户我想把他们的品牌优先展示,增加曝光

2022/3/16
articleCard.readMore

电商搜索业务总结

在电商领域中,搜索和推荐是主要的流量入口,是每个电商平台不可或缺的部分,搜索功能是在用户明确意图下,尽可能的给其提供想要的商品,从而促成下单

2022/3/15
articleCard.readMore

2021 年终总结

2021 年对我个人来说是很精彩的一年,下面将以时间线的方式记录几个重要的时刻。 买了第一辆摩托车 买了第二辆摩托车 ’ 做公益项目 做公益项目给我印象最深的

2022/1/6
articleCard.readMore

Cypress 实践总结

前言 最近接手了一个前端的项目,这个项目使用宜搭低代码平台进行搭建,由于每次修改代码或者调整组件时都有可能造成其他问题,影响整体的项目质量,然

2021/7/8
articleCard.readMore

年终总结

2020 年注定是不平凡的一年,在新冠疫情的影响下,居家隔离、办公、最低工资等等,企业即要保护打工人的安全又要保障公司的生存,可谓是手段频出。 今年是

2021/2/17
articleCard.readMore

关于我

名称由来 象帝 取自 道冲,而用之或不盈。渊兮,似万物之宗;湛兮似或存,吾不知谁之子,象帝之先。 浮华生 取自 浮华一世中,倏若飞鸟过。 自我简介 道教徒,

2021/2/15
articleCard.readMore

使用 cucumber 进行行为驱动开发(BDD)

前言 保证软件质量的方式多种多样,根据测试金字塔上所描绘的,单元测试是最有效的,但是在公司内部实践的时候却遇到了一些问题,比如赶进度来不及写单

2020/10/20
articleCard.readMore

微服务应用集成 SpringCloud 步骤

前言 微服务开发模式能够将复杂的业务拆分成独立的更细粒度服务,一定程度上降低了业务复杂度,但是随之而来的是如何保证各个服务的可靠性和稳定性,S

2020/10/13
articleCard.readMore

电商搜索数据同步方案

前言 搜索系统主要分为两个部分一个是在线服务、一个是离线服务,在线服务是指排序、打分等靠近用户侧的部分,离线服务负责这篇文章属于离线部分范畴,

2020/10/10
articleCard.readMore

通过一道数值转换题重温计算机补码

问题 昨天同事和我聊了他偶然间看到的一道面试题,引出了后面的深入分析。 1 System.out.println(Integer.valueOf((char)-1)); //output: 65535 为什么输出是 65535 而不是 -1 呢? 分析 先回顾一下计算机相关的知识点: 原码

2020/7/2
articleCard.readMore

macOS 系统推荐的一些软件

翻译 词典:mac 自带的,点按翻译 沙拉查词: chrome 上画线翻译 Alfred workflow + 有道翻译:支持查询单词并且回车键入当前位置 编程 IntelliJ IDEA:Java 工程利器 VSC

2020/6/26
articleCard.readMore

DevOps 实施规划(持续更新)

下面是我在日常工作中碰到的现状,相信大多数中小企业也会有类似情况 需求不明确 流程不够自动化 没有写单元测试的意识 上班摸鱼 不愿接受新思想 工作总是被

2020/5/8
articleCard.readMore

rabbitmq 如何提高可靠性并保证消费端幂等

什么是消息的可靠性 简单讲就是,一条消息由生产者发送出来,到 broker 上,存储到消息队列,再被消费者成功的消费。如果消息传着传着就传没了,此时消息就是

2020/3/30
articleCard.readMore

AMQ Model总结

前言 最近在写公司的消息队列组件,因为使用的是 RabbitMQ,其实现的规范是基于 AMQP-0-9-1 ,所以抽时间把官方的规范过了一遍,整理出主要的内容,记录于

2020/3/22
articleCard.readMore

结对编程

在日常开发中常常在同一组内的成员虽然都负责同一个系统,但基本上是自己开发自己的,这样所带来的问题就是如果一个人请假了并且他负责模块出了问题急

2019/12/26
articleCard.readMore

RSocket 介绍

RSocket 是一个新的通信协议, Facebook、Netfi、Pivotal、vlingo 等公司都有参与研发,它是一个位于传输层的新协议。在反应式编程

2019/12/10
articleCard.readMore

面向对象的理解

背景 说起面向对象的特征,大多数人肯会不加思索的答封装、继承、多态,可能还有抽象。最近在学 DDD 的时候,感觉它更加合理的运用了设计模式和面向对象的

2019/10/8
articleCard.readMore

企业平台技术框架

最近看了阿里的 TMF2.0 交易平台的介绍,觉得很有兴趣,所以展开学习,因为认知以及自身水平,对于技术平台框架理解有限,如有不当之处还望斧正。 在说 TMF2.0 之前

2019/9/27
articleCard.readMore

对创业的思考

在我还在读大学的时候就创业的想法,所以平时也会对创业的方面的内容更关注一些,加上平时的思考与感悟整理出来。 活着 对于创业可能常听到“十个创业九

2019/9/27
articleCard.readMore

知难行易

人们总是用自己的认知限制,来否认事物的存在 ”认知提升“应该是近几年频繁会听到的短语。一个人的认知决定了这个人站在什么高度去看待问题。最近接触

2019/9/22
articleCard.readMore

一年工作经验总结

从 17 年开始到现在断断续续的写了一百多篇博客,每次看到以前写的博客都很感慨,浏览之前的博客其实能感受到这几年的变化与成长,但最近想了一下决定删

2019/9/3
articleCard.readMore

我与领域驱动之缘

缘起 正式接触到领域驱动还是耗子叔在易观峰会上的演讲,当时听的一知半解,现在回头来看一看真的很棒。 深入 领域驱动设计适用于复杂的业务系统,但对于

2019/7/30
articleCard.readMore

TDD 中使用的工具

Junit 常用单元测试工具 MockMvc Spring 提供的模拟 Controller 接口调用的工具 Mocktio 能够提供 Mock 方法 Cucumber 行为驱动开发,以用户故事为核心,算是 TDD 的升级版,能够结合其他工具生成报表

2019/7/30
articleCard.readMore

tf-idf 算法

tf-idf (term frequence-inverse document frequence) 词频-逆文档频率,是搜索常用的一个权重相关算法,其作用是评估一个 document 在一整个 document list 中的重要程度,下面分开来讲。 term frequence tf 的意思就是一个词语

2019/7/3
articleCard.readMore

gitlab 添加代码规范检测

环境 gitlab 10.5.X + gitlab + ali p3c.pmd 好的代码能让人赏心悦目,方便 CodeReview 进行,为此,必须强制性的将代码规范起来。 如何做 git custom hooks client hooks 客户端钩子是存在本地的,按项目去配,

2019/6/19
articleCard.readMore

query 改写

什么是 query 改写 query 改写是搜索系统中最基础也是最重要的一个模块,简单来讲就是把用户输入的 keyword 转换成最贴近搜索系统内部的可识别的 keyword。 搜索引

2019/6/18
articleCard.readMore

阶段性总结

博客断断续续的在更着,总是想写总是找不到合适的时间。 做了那些事情 搜索 用 solr 将公司的搜索系统重构了一遍,但是感觉很有成就感,但现在看来真的很 low ,

2019/6/18
articleCard.readMore

操作系统作用

操作系统作用 1、资源管理者 都能管理什么? 自底向上 对于操作系统内部来讲 硬件资源 像 CPU 、内存、设备(输入输出设备、磁盘、时钟、网卡) 软件资源 磁盘上

2019/6/2
articleCard.readMore

Consideration make three pointers , pre,current,next; initial pre as null use tmp to save current’s next node info change current’s next to link pre node(first is null) move pre pointer to next node move current pointer to next node soultion 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * Definition for singly-linked list.

2019/5/30
articleCard.readMore

hamming-distance

The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note: 0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ The above arrows point to positions where the corresponding bits are different.

2019/5/28
articleCard.readMore

ElasticSearch API 基本操作

查看集群健康值 GET _cat/health?v 查看 node 信息 GET _nodes 查看索引信息 GET _cat/indices?v 创建索引 PUT /test?pretty 删除索引 DELETE /test?pretty 新建文档并建立索引 创建一个index为 ecommerce 的索引 PUT /ecommerce/_doc/1 { "product_id":1234, "product_name": "

2019/5/28
articleCard.readMore

elasticsearch 集群容错

Q:有三台服务器,三个 Primary Shard怎么配置能使 ElasticSearch 达到高可用 在此之前应该先清楚 shard 、primary shard 、replica shard、node 的概念 还

2019/5/25
articleCard.readMore

ElasticSearch 基础概念

documnet 文档,类似于 Java 的实体类,但非面向对象的,比实体类更加灵活。 index 索引,用来存放文档,一个索引可存放若干个 document type ElastcSearch 7 以后过时,使用 _doc 代替,预计在未

2019/5/24
articleCard.readMore

技术选型怎么做

技术选型包括哪些 从个人观点出发,技术选型包括框架、工具、语言。 需要考虑的点 公司规模 团队技术水平 时间和成本 生态 风险 公司规模 小公司 对于初创公司或

2019/5/23
articleCard.readMore

条件概率、全概率与贝叶斯公式

条件概率公式 设事件A 发生的概率为 P(A), 事件B 发生的概率为 P(B),则在事件B发生的情况下事件A发生的概率(A given B 的概率)为: $$ P(A|B)=\frac{P(AB)}{P(B)} $$ 全概率公式 如果

2019/5/18
articleCard.readMore

年终总结

很久没有写博客了,上一篇大概是在月初,这次算是对过去进行总结,准备迎接新的一年。 我不是很会写博客,纯粹是附庸风雅。 2018年 今年是从学校走向

2019/1/1
articleCard.readMore

迁移到 ubuntu18 的问题及配置

今天终于下定决心安装了 Ubuntu 系统,将新系统配置成自己熟悉的模式是需要很长的一段时间,更何况是双系统。下面是我遇到的问题,经过搜索与尝试并解决。 执

2018/12/3
articleCard.readMore

总结

有段时间没有写博客了,因为我在思考如何去写好一篇技术性文章,而不是随性所欲、天马星空似的。以前写的很多博客真的是太潦草,这就和 CSDN 那样一篇文章

2018/11/21
articleCard.readMore

使用 psi-probe 监控 Tomcat

psi-probe 是一款非常强大的开源 Tomcat 监控工具,使用时可以点击这里下载 配置用户: 在 tomcat/webapps/docs/deployer-howto.html 文档的 manager 下有说明 conf/tomcat-user.xml 1、添加用户 <role rolename="ahian"/> <role rolename="manager-gui"/> <role rolename="manager-status"/> <user username="ahian" password="123456" roles="ahian,manager-gui,manager-status"/> 2、在 conf 文件夹中新建

2018/9/7
articleCard.readMore

Tomcat 远程 Debug

JDWP 协议介绍 JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。 详请参考此文。 远程 Tomcat 服

2018/9/5
articleCard.readMore

jstack 死循环和死锁定位

jstack 是用来查看线程的命令 1 jstack [option] <pid> 先来看看线程的状态(官方文档) New Runnable Blocked Waiting Timed_Waiting Terminated 下面是 java 线程状态转化 代码模拟 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2018/9/4
articleCard.readMore

jmap & mat 内存溢出

模拟内存溢出 S0 和 S1 同时只会有一个使用,另一个是空的。 Metaspace 中主要存放 class 和 methods 等 模拟溢出的环境 堆内存溢出:通过不断地创建对象来将堆内存填充满 非堆内存

2018/9/3
articleCard.readMore

JVM 常用参数查看

JVM 参数 标准参数 -X 参数 -XX 参数 标准参数 1 2 3 4 5 6 7 8 -help -server -client -version -showversion -cp -classpath ... X 参数 1 2 3 -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码(

2018/9/3
articleCard.readMore

周总结(8.13-8.19)

完成 jmeter 的 PPT 整理 主要学习缓存方面的内容,在近期会整理成文章。 学习 julia 争取成为 Julia 的布道者

2018/8/20
articleCard.readMore

周总结(7.30-8.4)

月末月初,总的来说这一周过得很匆忙,30号下午到的北京,31号体检,1号入职,这时已经是周三了,花了几个小时把环境搭好,熟悉了工作环境,和那

2018/8/5
articleCard.readMore

使用移位运算符

middle = (L+R)/2 这样的写法 L+R 有可能溢出 middle = L + (R-L)/2 =>minddle = L + (R-L)>>1 这样写的好处是不会发生数据溢出,除以 2 则是向右移一位,位运算比算术运算快

2018/5/27
articleCard.readMore

master 公式

master公式 T(N) = a*T(N/b) + O(Nd) N:样本量 T:时间复杂度 a:样本量发生的次数 b:将样本量进行分治 c:执行子过程之外其余过程的时间复杂度 用途:计算递

2018/5/26
articleCard.readMore

VMware 12 NAT网络下配置 ubuntu 16.04 LTS 系统静态 IP

镜像是 ubuntu 16.04 server 版,主机是 Windows10 系统,因为要搭建 Hadoop 集群,所以配置一下,将此配置流程在此记录,方便查找。 查看主机 IP ipconfig 系统分配给虚拟机使用的网卡是 VMn

2018/5/10
articleCard.readMore

关于进制的计算

进制转换 进制包括 二进制 八进制 十进制 十六进制 二进制(BIN)转十进制(DEC) 将二进制数按权展开相加得十进制数 举例:10010 的十进制为 18 十进

2018/3/25
articleCard.readMore

项目总结 第三篇

春节将至,项目还是滞后了,功能基本上全部实现就差细节优化了,今天非常困,眼都睁不开了,今天整理整理项目中用到的东西 图片上传 使用 thumbnail 进行图片的压

2018/2/12
articleCard.readMore

项目总结 第二篇

button 的 onclick 时间绑定 submitData 利用 AJAX 进行数据传输 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 function submitData(){ var url="<%=request.getContextPath()%>/updateGoodsCat.do"; var catId=$("#catId").val(); var name=$("#name").val(); var title=$("#title").val(); var pid=$("#pid").val(); var comments=$("#comments").val(); var params={ "catId":catId, "name":name, "title":title, "pid":pid, "comments":comments,}; $.post(url,params,function(result){ // alert(result); //window.location.reload(); }); } 当 时间为 AJAXSubmit 时 1 2

2018/1/31
articleCard.readMore

editor.md 富文本编辑器的使用

editormd 是一款国产的软件,虽然很久没更新了,但其所实现的功能已满足日常使用,下面主要讲使用时需要注意的点。 在 Body 中写两个文本域便于保存,注意 class 1 2 3

2018/1/31
articleCard.readMore

项目总结 第一篇

在公司做一个商业的网站,里面有很多值得学习和保存的内容。 这次是在未提交表单时进行图片回显的JavaScript代码,很棒的效果。 以下仅显示用

2018/1/31
articleCard.readMore

2017至今总结

2017 年过去快一个月了,今天刚好想整理一下记录。捋一捋去年都干了些什么。 2018年给我的感觉就是冷,连南方都在下雪,而在今年我也即将毕业,走向社

2018/1/30
articleCard.readMore

谈谈微服务

什么是微服务 微服务是一些协同工作的小而自治的服务。 发展历史 微服务是应运而生,它不是谁发明的,而是现实社会总结出来的一种模式。 特性 我们可以把微

2017/11/26
articleCard.readMore

单例模式

单例模式Singleton 作用:保证整个应用程序中某个实例有且只有一个 类型:饿汉模式和懒汉模式 首先创建一个Pattern类,什么都不写。 1 2

2017/10/10
articleCard.readMore

tor 使用

写在前面: 我写本文的目的是为了记录我所探索的世界,严禁做违法犯罪的事情,作者一直保持中立态度来学习。望来者自尊自律。 如果你只是为了翻墙,此文

2017/9/16
articleCard.readMore

归档

2001/1/1
articleCard.readMore

搜索

2001/1/1
articleCard.readMore

搜索 && 推荐

links reading awesome-search 药老算法 推荐和搜索(工程为主) 炼丹笔记 电商搜索算法 搜索策略产品经理必读系列—第一讲电商搜索引擎整体框架 基于ES实现电商语义搜索 watching

2001/1/1
articleCard.readMore