自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千丈之松的专栏

实践是最好的成长、发表是最好的记忆!!

原创 技术交流,扫描关注技术公众号!

精选各领域互联网技术, 推送前后端、算法、人工智能领域优质技术文章!! 本公众号由阿里、网易、美团等团队组成 精选各领域互联网技术, 推送前后端、算法、人工智能领域优质技术文章!! 本公众号由阿里、网易、美团等团队组成。...

2018-11-20 20:40:13 243 0

转载 美团旅游召回系统设计

背景美团点评作为最大的生活服务平台,有丰富的品类可供用户选择,因此搜索这个入口对各业务的重要性不言而喻,除了平台搜索外,业务搜索系统的质量和效果对用户体验、商家曝光、平台交易也有着关键作用。相对美团点评平台的O2O检索,旅游搜索系统主要面临以下几点挑战:本异地差异大。在本地生活场景中用户的搜索需求...

2018-05-24 16:54:40 783 1

原创 从Elasticsearch集群及数据层架构,看分布式系统设计

分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。这篇文章中,重点会讨论下分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。我们先来简单看下Elasticsearch的架构。一、Elasticsearch集群架构Elasticse...

2018-03-02 19:05:59 263 0

原创 360 搜索的百亿级网页搜索引擎架构实现

目前 360 搜索每日抓取的网页数量高达十亿,已经收录的网页基本上是万亿级别的网页集合,实际可检索的网页是在一个百亿级别的网页集合里。 目前 360 搜索的单日流量是亿级 pv。我们目前的在线、离线机群有几万台服务器来维护这么大量级的计算。 主要内容 我今天的分享的主要会侧重于百亿级网站搜索...

2020-06-24 11:22:41 110 0

原创 搜索引擎相关度算法 -BM25 JAVA实现

bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法。 它的出现主要是解决TF-IDF算法中 TF的影响可无限增大的不足,本质上BM25是基于TF-IDF并做了改进的算法。 如图所示,传统的TF-IDF算法中 词频的影响程度是无限增大的,换而言之就是关键词出...

2020-05-28 21:55:07 44 0

原创 ThreadLocal内存溢出(OOM)的原因

ThreadLocal是Java提供的一个线程安全类,其原理是每个线程都拥有各自的变量内存副本。其实就是每个线程Thread里都有一个ThreadLocalMap类,用于存储变量值。更新、删除操作时,都是操作各自线程里的hreadLocalMap类,互不影响,从而达到的线程安全 ThreadLoc...

2020-05-19 16:35:15 27 0

原创 知乎推荐系统的实践及重构之路

1、背景 知乎从问答起步,已逐步成长为一个大规模的综合性知识内容平台,截止目前,用户数突破 2.2 亿,有超过 3000 万的问题被提出,并获得超过 1.3 亿个回答。同时,知乎内还沉淀了数量众多的优质文章、电子书以及其它付费内容。 因此,在链接人与知识的路径中,知乎存在着大量的推荐场景。粗略...

2019-02-21 11:07:00 1424 0

原创 Java SSM框架相关基础整理

一、Spring面试题 1、Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成。 两大核心: ①. IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spr...

2019-01-16 17:28:59 303 0

原创 分布式理论和系统架构设计

CAP理论 分布式锁 分布式一致性 分布式事务 负载均衡 微服务   一  CAP和BASE理论 1.1  CAP理论         分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。很多系统在设计之初就要对这三者做出取舍。在互联网领域...

2018-08-17 11:58:36 310 0

原创 Redis特性和性能调优

概要 在分布式里面满足CP (一致性、分区容错性)。 性能:对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。 一  Redis...

2018-08-17 11:37:18 5829 0

原创 贝叶斯公式

贝叶斯分类  是基于朴素贝叶斯定理分类器,其计算过程是在训练阶段的时候,先计算每个分类的先验概率P(A),和各个分类下面特征属性的条件概率P(B|A)。预测的过程 ,反推特征-分类的条件概率(A|B)。取最大概率作为分类结果。        贝叶斯定理:已知A(分类)的条件概率,B(某个特征)...

2018-08-17 11:09:37 345 0

原创 BST、AVL、B-TREE、B+TREE、红黑树

1:BST 二叉搜索树(左子树值<=根值<=右子树) 1.1 定义 1 首先它也是一个二叉树,故满足递归定义; 2 其次每个节点只存在一个值; 3 需满足左子树值<=根值<=右子树,BST的中序遍历必定是严格递增的。 在实际场景...

2018-08-04 10:19:05 209 0

原创 从分布式系统设计看Elasticsearch集群及数据结构

一: 概述 es本质上就是由分布式思想+lucene组合而成,因为lucene的存在,它比一般的分布式系统会稍微复杂一点,es采取的分布式思想是分片+副本+去中心化。 es持久化的方式是:副本索引文件+translog文件,es默认配置下,为了比较好的速度,选择了性能,是可能丢数据的(5s)。...

2018-08-04 10:02:55 1408 0

原创 倒排索引查询原理

Lucene 查询过程 在lucene中查询是基于segment。每个segment可以看做是一个独立的subindex,在建立索引的过程中,lucene会不断的flush内存中的数据持久化形成新的segment。多个segment也会不断的被merge成一个大的segment,在老的segme...

2018-08-03 13:58:02 9492 1

原创 倒排、空间、BTREE、HASH索引

倒排索引 数据结构分为词表和倒排表两部分。 词表:FST。类似于字典树(适合英文),共享前缀,内存消耗小; https://blog.csdn.net/njpjsoftdev/article/details/54015485 倒排表:文档号集合。数据压缩+有序链表+跳表    https://...

2018-07-31 20:29:24 776 0

转载 Lucene简介和索引原理

基于Lucene检索引擎我们开发了自己的全文检索系统,承担起后台PB级、万亿条数据记录的检索工作,这里向大家分享下Lucene底层原理研究和一些优化经验。    从两个方面介绍:    1. Lucene简介和索引原理    2. Lucene优化经验总结 1. Lucene简介和索引原理  ...

2018-07-31 20:00:59 157 0

转载 红黑树

介绍红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。 阅读以下需要了解普通二叉树的插入以及删...

2018-05-31 11:27:43 106 0

转载 美团搜索排序设计方案

一、线上篇随着业务的发展,美团的商家和团购数正在飞速增长。这一背景下,搜索排序的重要性显得更加突出:排序的优化能帮助用户更便捷地找到满足其需求的商家和团购,改进用户体验,提升转化效果。和传统网页搜索问题相比,美团的搜索排序有自身的特点——90%的交易发生在移动端。一方面,这对排序的个性化提出了更高...

2018-05-24 16:56:14 6869 2

原创 如何合理的设置线程数

 一、需求缘起Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。“工作线程数”的设置依据是什么,到底设置为...

2018-04-11 14:35:55 845 0

原创 elasticsearch ik配置动态同义词

使用环境elasticsearch5.1.1kibana5.1.1同义词插件5.1.1安装插件下载对应的elasticsearch-analysis-dynamic-synonym-5.1.1.zip, 解压到本地的elasticsearch/plugins目录下, 重新启动es第一种方式本地文件...

2018-03-01 18:00:25 3480 1

原创 lucene倒排索引表搜索原理

什么是正排索引?什么是倒排索引?搜索的过程是什么样的?会用到哪些算法与数据结构? 前面的内容太宏观,为了照顾大部分没有做过搜索引擎的同学,数据结构与算法部分从正排索引、倒排索引一点点开始。提问:什么是正排索引(forward index)?回答:由key查询实体的过程,是正排索引。用户表:t_us...

2018-01-12 11:54:27 2631 0

转载 一致性哈希

基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ; 求余算法: hash(object)%N...

2018-01-12 11:29:57 187 0

原创 elasticsearch总结

Elasticsearch是如何实现Master选举的? Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分;对所有可以成为master的节...

2018-01-12 08:48:41 191 0

转载 蘑菇街搜索与推荐架构

搜索架构的探索之当前现状 蘑菇街搜索当前架构 如上图,是蘑菇街当前搜索架构,分为在线和离线两部分。在线部分主要职责是处理在线的搜索请求。离线部分的主要职责是处理数据流。 在线请求链路 如上图,是整个在线请求链路,主要分为topn->qr->引擎-...

2017-12-21 13:04:36 2198 0

转载 电商搜索引擎的架构设计和性能优化

首先,我想说的是电商搜索引擎和普通的搜索引擎有很大的差别,因为电商搜索引擎主要是解决用户要“买什么”,而通用搜索引擎主要是解决用户“搜什么”。比如同样搜索一个词“百年孤独”,电商的搜索肯定是给你推荐这本书的商家,而百度主要是告诉你:《百年孤独》是一本书。 电商搜索引擎的特点 众所周知,标准的搜...

2017-12-21 11:34:54 4960 0

原创 ALS 推荐系统

ALS(alternating least squares ):交替最小二乘法 在机器学习中,特指使用最小二乘法的一种协同推荐算法。如下图所示,u表示用户,v表示商品,用户给商品打分,但是并不是每一个用户都会给每一种商品打分。? 表示用户没有打分的情况,所以这个矩阵A很多元素都是空的,我们称其为“...

2017-12-19 13:59:23 1147 0

原创 基于JGibbLDA lda topic主题模型

最近在做基于LDA(Latent Dirichlet Allocation)的文本分类处理,开始学习和接触了LDA,因为代码采用的是Java,所以我选择的LDA开源工具是JGibbLDA,这个是LDA的Java版本实现,下载地址为:http://jgibblda.sourceforge.net/ ...

2017-11-01 13:49:16 693 1

原创 搜索推荐系统评价指标

下面简单列举几种常用的推荐系统评测指标: 1、准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关...

2017-10-20 14:40:35 2353 0

转载 HanLP自然语言处理包开源

支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体识别(中国人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、CRF依存句法分析)。提供Lucene插件,兼容...

2017-09-20 18:36:02 1960 0

原创 SVM 分类算法

SVM寻找分两类的超平面(hyper plane),使边际(margin)最大 优点:      1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting      1.2 SVM训练出来的模型完全依赖于支持向量(Suppo...

2017-07-12 15:57:56 1137 0

转载 logistic regression VS decision tree VS support vector machine

分类是我们在工业界经常遇到的场景,本文探讨了3种常用的分类器,逻辑回归LR,决策树DT和支持向量机SVM。 这三个算法都被广泛应用于分类(当然LR,DT和SVR也可以用于回归,但是本文先不讨论)。我经常看到人们会问,这个问题我该使用LR呢还是决策树(或者GBDT)还是SVM呢。然后你会听到一...

2017-07-12 15:42:04 645 0

原创 JAVA 互联网面试

1:java和算法基础 ---(常用的类hashMap等数据结构、java8特效、快速排序等++)  2:服务框架 ---(rpc:dubbo,REST框架:Spring Web MVC,Spring Boot、Jersey,Apache CXF等)  3:数据库DB ---(...

2017-07-03 15:59:05 369 0

转载 决策树算法原理及案例

机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类和决策树模型及应用。通过一个决策树案例,着重从特征选择、剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则。最后基于 R 语言和...

2017-06-12 16:57:30 44357 0

原创 elasticsearch 分词过程

我们常常会遇到问题,为什么指定的文档没有被搜索到。很多情况下, 这都归因于映射的定义和分析例程配置存在问题。 一:分词流程 整个流程大概是:单词 ====》Character Filter 预处理 =====》tokenizer分词 ====》 token filter对分词进行再处理。 ...

2017-03-31 11:18:57 3329 0

转载 分布式服务化系统一致性的“最佳实干”

1 背景 一致性是一个抽象的、具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义。在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我、我中有你、浑然一体;而在互联网时代,一致性的含义远远超出了它原有的含义,在我们讨论互联网时代的一致性之前,我们先了解一下互联网时代的特...

2017-03-29 09:54:19 3012 0

转载 java基础知识汇总

浅谈Java中的hashcode方法 探秘Java中String、StringBuilder以及StringBuffer Java垃圾回收机制 Java内部类详解 深入理解Java的接口和抽象类  Java多线程基础:进程和线程之由来    Java NIO...

2017-03-07 11:12:31 322 0

原创 35 个 Java 代码性能优化总结

前言   代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上...

2017-03-07 11:09:18 260 1

原创 elasticsearch控制match执行过程的低级查询处理规则

match查询的多词查询只是简单地将生成的term查询包含在了一个bool查询中。通过默认的or操作符,每个term查询都以一个语句被 添加,所以至少一个should语句需要被匹配。bool 查询默认会对所有 should 语句使用协调功能,当我们使用 bool 查询将多个高级查询 如 match...

2017-02-21 16:36:06 1706 0

转载 一致性哈希

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。     ...

2016-12-27 18:29:26 184 0

转载 线程池工作机制与原理

书接上文,Java线程池。 接下来记录一下线程池的工作机制和原理 线程池的两个核心队列: 线程等待池,即线程队列BlockingQueue。任务处理池(PoolWorker),即正在工作的Thread列表(HashSet)。 线程池的核心参数: 核心池大小(corePoo...

2016-11-14 13:31:18 566 0

提示
确定要删除当前文章?
取消 删除