自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千丈之松的专栏

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

  • 博客(131)
  • 资源 (6)
  • 收藏
  • 关注

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

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

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

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

分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。这篇文章中,重点会讨论下分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。我们先来简单看下Elasticsearch的架构。一、Elasticsearch集群架构Elasticsearch是一个非常著名的开源搜索和分析系统,目前被广泛应用于互联网多种领域中,尤其是以下三个领域特别突...

2018-03-02 19:05:59 449 1

原创 字典树实现搜索

5| 安(1-false) 手(1-true) 杀(1-false) 成(1-false) 点(1-false) 云(1-true) 的(1-false) 杀(1-false) 不(10-false) 冷(1-false) 太(1-false)7| 的(1-false) 的(1-false) 尖(1-false) 不(1-false) 漠(1-true) 冷(9-false) 了(1-true)

2023-02-07 21:33:32 691

转载 dubbo相关

基础知识为什么要用 Dubbo?随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。Dubbo 是什么?Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框

2021-07-22 16:35:05 190

原创 搜索引擎是如何设计倒排索引的?

搜索引擎如何工作?信息检索已经发展的非常成熟了,应该所有人都不陌生。我有幸这几年接触过并且实际做过一些搜索引擎开发的工作,特此总结并分享给大家。实际上,一个成熟的搜索引擎是想当复杂的,比如百度的,就分nginx,vui,us,as,bs,da.....等等这些模块,当然这些简写的字母大家也不必了解,只要知道它确实复杂就可以。今天我所讲的是一个简化版的搜索引擎,简化到只涉及到倒排建立和拉取。虽然简单,但是它是整个搜索引擎的最核心组件。一个最简单的搜索引擎如下图所示:merger: 接收查.

2020-12-10 16:10:09 353

原创 归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)

1 概念  归一化:1)把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2)把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。  标准化:在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平

2020-07-15 14:12:58 385

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

bm25 是一种用来评价搜索词和文档之间相关性的算法,它是一种基于概率检索模型提出的算法。它的出现主要是解决TF-IDF算法中 TF的影响可无限增大的不足,本质上BM25是基于TF-IDF并做了改进的算法。如图所示,传统的TF-IDF算法中 词频的影响程度是无限增大的,换而言之就是关键词出现的越频繁,TF-IDF相关度就越高。稍微有点简单粗暴;而BM25算法就是让词频的影响到达一定程度后趋于收敛,相比而已更加符合自然语言相关程度的实际逻辑。参考:《搜索中的权重度量利器: TF-IDF和BM.

2020-05-28 21:55:07 685

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

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

2019-02-21 11:07:00 2066

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

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

2019-01-16 17:28:59 438

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

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

2018-11-20 20:40:13 374

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

CAP理论分布式锁分布式一致性分布式事务负载均衡微服务 一  CAP和BASE理论1.1  CAP理论        分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个...

2018-08-17 11:58:36 520

原创 Redis特性和性能调优

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

2018-08-17 11:37:18 14502 1

原创 贝叶斯公式

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

2018-08-17 11:09:37 879

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

1:BST 二叉搜索树(左子树值<=根值<=右子树)1.1 定义1 首先它也是一个二叉树,故满足递归定义;2 其次每个节点只存在一个值;3 需满足左子树值<=根值<=右子树,BST的中序遍历必定是严格递增的。在实际场景中,用的最多的是二叉平衡树,一般操作的执行时间福再度为O(lgn)。2.但若是一棵具有n个结点的线性链,则此些操作最坏情况运行时间...

2018-08-04 10:19:05 585

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

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

2018-08-04 10:02:55 1779

原创 倒排索引查询原理

Lucene 查询过程在lucene中查询是基于segment。每个segment可以看做是一个独立的subindex,在建立索引的过程中,lucene会不断的flush内存中的数据持久化形成新的segment。多个segment也会不断的被merge成一个大的segment,在老的segment还有查询在读取的时候,不会被删除,没有被读取且被merge的segement会被删除。这个过程类似...

2018-08-03 13:58:02 24420 3

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

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

2018-07-31 20:29:24 1303

转载 Lucene简介和索引原理

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

2018-07-31 20:00:59 315

转载 红黑树

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

2018-05-31 11:27:43 189

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

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

2018-05-24 16:56:14 12108 3

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

 一、需求缘起Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。“工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本文要讨论的问题。 二、共性认知在进行进一步深入讨论之前,先以提问的方式就...

2018-04-11 14:35:55 3634

原创 elasticsearch ik配置动态同义词

使用环境elasticsearch5.1.1kibana5.1.1同义词插件5.1.1安装插件下载对应的elasticsearch-analysis-dynamic-synonym-5.1.1.zip, 解压到本地的elasticsearch/plugins目录下, 重新启动es第一种方式本地文件说明:对于本地文件:主要通过文件的修改时间戳(Modify time)来判断是否要重新加载在elast...

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

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

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

2018-01-12 11:54:27 3982 1

转载 一致性哈希

基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;求余算法: hash(object)%N一切都运行正常,再考虑如下的两种情况;1 一个 cache 服务器 m down 掉了(在实际

2018-01-12 11:29:57 245

原创 elasticsearch总结

Elasticsearch是如何实现Master选举的?Elasticsearch的选主是ZenDiscovery模块负责的,主要包含Ping(节点之间通过这个RPC来发现彼此)和Unicast(单播模块包含一个主机列表以控制哪些节点需要ping通)这两部分;对所有可以成为master的节点(node.master: true)根据nodeId字典排序,每次选举每个节点都把自己所知道节点排

2018-01-12 08:48:41 302

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

搜索架构的探索之当前现状蘑菇街搜索当前架构如上图,是蘑菇街当前搜索架构,分为在线和离线两部分。在线部分主要职责是处理在线的搜索请求。离线部分的主要职责是处理数据流。在线请求链路如上图,是整个在线请求链路,主要分为topn->qr->引擎->精排->透出五个环节。第一步,请求首先进入topn系统,做ab配置/业务请求链路配置。第二步,请

2017-12-21 13:04:36 2818

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

首先,我想说的是电商搜索引擎和普通的搜索引擎有很大的差别,因为电商搜索引擎主要是解决用户要“买什么”,而通用搜索引擎主要是解决用户“搜什么”。比如同样搜索一个词“百年孤独”,电商的搜索肯定是给你推荐这本书的商家,而百度主要是告诉你:《百年孤独》是一本书。电商搜索引擎的特点众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才是检索结果。首先,电商的搜索引

2017-12-21 11:34:54 7576

原创 ALS 推荐系统

ALS(alternating least squares ):交替最小二乘法在机器学习中,特指使用最小二乘法的一种协同推荐算法。如下图所示,u表示用户,v表示商品,用户给商品打分,但是并不是每一个用户都会给每一种商品打分。? 表示用户没有打分的情况,所以这个矩阵A很多元素都是空的,我们称其为“缺失值(missing value)”。协同过滤提出了一种支持不完整评分矩阵的矩阵分解方法,不用对评

2017-12-19 13:59:23 2134

原创 基于JGibbLDA lda topic主题模型

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

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

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

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

2017-10-20 14:40:35 5742

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

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

2017-09-20 18:36:02 2933

原创 SVM 分类算法

SVM寻找分两类的超平面(hyper plane),使边际(margin)最大优点:     1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting     1.2SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍

2017-07-12 15:57:56 2103

转载 logistic regression VS decision tree VS support vector machine

分类是我们在工业界经常遇到的场景,本文探讨了3种常用的分类器,逻辑回归LR,决策树DT和支持向量机SVM。这三个算法都被广泛应用于分类(当然LR,DT和SVR也可以用于回归,但是本文先不讨论)。我经常看到人们会问,这个问题我该使用LR呢还是决策树(或者GBDT)还是SVM呢。然后你会听到一个“经典”而且“绝对正确”的答案:”It depends.”这个答案简直毫无卵用。所以本文将探讨一

2017-07-12 15:42:04 1029

原创 JAVA 互联网面试

1:java和算法基础 ---(常用的类hashMap等数据结构、java8特效、快速排序等++) 2:服务框架 ---(rpc:dubbo,REST框架:Spring Web MVC,Spring Boot、Jersey,Apache CXF等) 3:数据库DB ---(mysql/mongodb、乐观悲观锁、事务一致性) 4:负载均衡 ---(高并发系统思想

2017-07-03 15:59:05 497

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

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

2017-06-12 16:57:30 76743

原创 elasticsearch 分词过程

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

2017-03-31 11:18:57 4686

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

1 背景一致性是一个抽象的、具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义。在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我、我中有你、浑然一体;而在互联网时代,一致性的含义远远超出了它原有的含义,在我们讨论互联网时代的一致性之前,我们先了解一下互联网时代的特点,互联网时代信息量巨大、需要计算能力巨大,不但对用户响应速度要求快,而且吞吐量指标也要向外扩展(

2017-03-29 09:54:19 3427

转载 java基础知识汇总

浅谈Java中的hashcode方法探秘Java中String、StringBuilder以及StringBufferJava垃圾回收机制Java内部类详解深入理解Java的接口和抽象类 Java多线程基础:进程和线程之由来   Java NIO:浅析I/O模型         Java NIO:NIO概述         J

2017-03-07 11:12:31 382

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

前言  代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考

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

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

match查询的多词查询只是简单地将生成的term查询包含在了一个bool查询中。通过默认的or操作符,每个term查询都以一个语句被添加,所以至少一个should语句需要被匹配。bool 查询默认会对所有 should 语句使用协调功能,当我们使用 bool 查询将多个高级查询如 match 查询包裹的时候,让协调功能打开是有意义的,匹配的语句越多,查询请求与返回文档间的重叠度就越高。 但在某些高级应用中,我们将协调功能关闭可能更好。假如我们正在查找同义词 “衣服”,“服装”,“服饰”。我们并不关

2017-02-21 16:36:06 2600

算法导论.pdf

算法导论

2014-12-15

HADOOP初级安装培训资料

HADOOP初级安装培训资料

2014-10-11

hadoop-0.20.2.tar.gz

hadoop-0.20.2.tar.gz

2014-10-11

JAVA反编译工具

JAVA反编译工具

2014-10-11

CnPlugin plsql快捷键设置工具包

plugins plsql快捷键设置。 plugins plsql快捷键设置。 plugins plsql快捷键设置。 plugins plsql快捷键设置。 plugins plsql快捷键设置。

2014-10-11

IK Analyzer 2012FF_hf1.zip 分词

IK的2012系列的分词器!做搜索引擎初学者的

2014-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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