技术学习笔记
文章平均质量分 65
源远流长
余镇源的技术博客:主要在搜索引擎,大数据,推荐,后端领域
展开
-
向量检索服务迭代演进
背景在搜索推荐系统里,有一个重要的服务是向量检索服务,也就是求向量在空间中最相近的topk个向量,在搜索系统里,涉及大量的召回引擎可能需要用到向量检索服务,需要在线实时计算,并且可快速响应;所以这里需要解决两个问题,一个是存储所有待计算的向量,并对输入的向量,做向量相似度计算,求得最近的向量列表排序,取得top k个;另一个因为要达到在线服务即时响应需求,因为这个是基础服务,所以要做到毫秒级别响应解决方案&迭代演进1、最粗暴的向量KNN计算。原创 2023-01-12 13:06:48 · 686 阅读 · 1 评论 -
智能推荐架构演进
从18年开始,整个推荐开始从小作坊转向正规军前进,开始将重复造轮子的事,不断抽象优化,往平台方向靠拢;随着推荐业务场景越来原创 2020-10-09 16:04:33 · 462 阅读 · 1 评论 -
推荐策略平台与ABTEST实验结合
推荐策略平台与ABTEST实验整体实现过程首先先看下整体推荐架构流程,如图所未:推荐策略平台与实验平台都有业务&场景的粒度配置,他们都覆盖多个业务场景,所以以某一个业务场景粒度来看因为推荐策略平台已实现将实验平台主要是配置,与推荐策略平台打通,...原创 2020-09-29 19:23:36 · 658 阅读 · 0 评论 -
推荐策略平台
推荐策略平台一、项目背景与目标1、背景概况 推荐业务接⼝内部逻辑⿊盒,且耦合在⼀起,重⽤困难,开发⾮常耗时。 接⼝协议按需制定,没有标准化,新来一个业务开发完接⼝都要重新找⼈对接⼀遍 越来越多的业务推荐业务场景,开发效率慢,重造轮子成本明显太高 2、目标成果 减少⼈力和时间成本:对接通⽤接⼝,只需一份⽂档即可对接,减少沟通成本;拆成模块,配置成图即完成⼀个业务,提高搭建服务效率 为决策提供便利:决策者可通过业务流程图,结合报表,调整和优化⽅方案,摆...原创 2020-09-29 19:06:27 · 933 阅读 · 0 评论 -
ABTEST实验平台
ABTEST实验与闭环一、单层实验一般早期的ab-test都是单层实验,逻辑非常简单,比如使用userId/deviceId做hash然后取模,将流 量打在0-99,做成100份。有如下问题:1、扩展性差,只能同时支持少量实验。但是以数据驱动的业务,需要极快的创新速度,大量的创新 需要被测试,会严重delay业务。2、如果在单层同时进行多个实验,实验之间不是独立事件,并行的时候,同一个策略,只能进行一 个实验,如果多个并行支持,无法实现。不同策略之间也有影响。3、流量饥饿问...原创 2020-09-29 16:51:32 · 2556 阅读 · 0 评论 -
推荐系统实时推荐架构演进
推荐系统实时召回引擎升级问题背景 用户体验问题,由于离线推荐性能问题,离线推荐大部分引擎只计算昨天活跃用户,当用户较前几天活跃时候,当用户打开app,触发拿到的推荐数据其实是比较老旧的; 离线推荐存量问题,在feed架构存储的数据也有比较多,原有设计都是为了避免离线推荐数据消费完无数据可推荐,但这个对于业务的调整都没感知,比如内容敏感下架,用户兴趣变化; 推荐数据不足,离线推荐的数据会很快受到用户的刷新过量快速消费完,导致召回源数据不足,多样性不够,需要补充引擎; .原创 2020-09-24 19:11:53 · 2159 阅读 · 0 评论 -
音频UGC内容推荐系统的思考
2018到2019年,荔枝推荐平台架构演进荔枝平台架构与未来规划原创 2020-03-25 17:56:05 · 486 阅读 · 0 评论 -
初学struts2遇到的问题
初学struts2没有配置好的一个DJ问题~~不够细心~~ 开始真的是郁闷了几天,就是被个小问 题给害得好惨~ 而这个小问题的起因就是,把struts.xml放置的位置不对,粗心所付出的代价就是去图书馆一本一本的struts2的书都翻翻那些例子,跟配置~ 不够还得去网上下电子书对照,开始都是围着设置action的地方,以为是包写错还是名字的问题~直到几天后,才发现原来没原创 2009-03-18 14:16:00 · 883 阅读 · 0 评论 -
struts2 中对Action连续请求的问题
又是一个细节的问题~ 连续对action请求时,本来的http://yzy:8080/MYPetStore/user/validateRegist.action再不断请求地址便改为http://yzy:8080/MYPetStore/validateRegist.action开如一直不知道是哪里出了问题。原来是没有给定个namespace最后给原创 2009-03-29 23:40:00 · 887 阅读 · 0 评论 -
struts2 radio 默认值的设定
在Struts2中,radio标签可以使用一个list来输出一组radio按钮, 这样并没有默认值,所以就设置属性value的值 value="member">但还是没有效果 最后查下网上,改为以下便行了~ value="member">原创 2009-04-04 18:24:00 · 5019 阅读 · 3 评论 -
eclipse下生成Hibernate DAO中的几个方法
* save()方法提供了向数据库中添加数据的功能,但只能添加,这个DAO没有生成Update()的方法* 但你可以简单的八save()方法改称具有Update功能:将getSession().save * (transientInstance);这句改成* getSession().merge(transientInstance);或者getSession().saveOrUpdate*转载 2009-04-06 23:10:00 · 1024 阅读 · 0 评论 -
常用正则表达式
常用正则表达式正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [/u4e00-/u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^/x00-/xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:/n/转载 2009-04-18 23:08:00 · 1048 阅读 · 0 评论 -
在使用Struts的过程中也遇到了一些问题,现在总结一下
天乙社区8.0(http://www.laoer.com)已经完全用Struts2实现,在使用Struts的过程中也遇到了一些问题,现在总结一下。 1、在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,道理很简单,要先调整字符集,再进入Action。 2、如果使用Urlrewrite,要指定filter-mapping的dispatch转载 2009-06-04 13:12:00 · 748 阅读 · 0 评论 -
Solr+Tomcat在Windows下的搭建
最近在学习收索引擎,找了一些资料,学着在Windows下搭建Solr+Tomcat,可是网上的资料要么太老,要么就是英文版的,看着很费劲。 先来说说Solr,Solr 最初由 CNET Networks 开发,2006 年初,Apache Software Foundation 在 Lucene 顶级项目的支持下得到了 Solr。Solr 于 2007 年 1 月酝酿成熟,在转载 2010-03-10 14:32:00 · 1618 阅读 · 2 评论 -
solr索引目录与扩展
1.solr 如何读取索引在solrconfig.xml中可以配置solr的索引目录。${solr.data.dir:./solr/data}默认是在目录./solr/data,如果使用分布式的话,这个配置要跟主机一致。 如果有存在文件index.properties,则读取index=index.20101102052813,获得指定的索引目录index.2010110原创 2010-03-23 15:22:00 · 1298 阅读 · 1 评论 -
solr 简单的分布式布署
1)首先在${tomcat目录}/conf/Catalina/localhost 创建两个solr的配置文件。 可以命名为solr.xml(主服务器配置)内容为: slaver_solr.xml (从服务器配置)内容为: 可以看到两个配置所引用的后台管理是同一个目录的,但这个没关系,只要solr/home原创 2010-03-24 09:39:00 · 2998 阅读 · 0 评论 -
solr dataimport 的配置
1)在solrconfig.xml增加 data-config.xml 2)然后在solrconfig.xml同一个目录下,即是solr home目录下增加 data-config.xml 文件原创 2010-03-29 11:20:00 · 18965 阅读 · 0 评论 -
安装Maven2
在Windows下,解压获得的apache-maven-2.x.x-bin.zip至你想要安置Maven2的目录,比如笔者解压至了"D:/Library/",那么D:/Library/apache-maven-2.2.1是Maven2的根目录 去配置名为M2_HOME的环境变量为上述路径;如果是2.0.9版本则需注意路径最后一个字符不能是/;继续配置名为M2的环境变量为"%M2_转载 2010-03-29 17:01:00 · 1261 阅读 · 0 评论 -
tomcat抛出的奇怪异常
信息: Illegal access: this web application instance has been stopped already. Could not load com.mysql.jdbc.SQLError. The eventual following stack trace is caused by an error thrown for debugging purp原创 2010-04-02 10:15:00 · 1110 阅读 · 0 评论 -
Eclipse快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面转载 2010-04-06 11:47:00 · 599 阅读 · 0 评论 -
利用SOLR搭建企业搜索平台
利用SOLR搭建企业搜索平台 之一(运行solr) 在网络上找了很多的关于solr的资料,发现非常的不全面,即使就是官方的wiki,也是如此! 基于现阶段正在研究的solr应用,陆续的会分享我的一些经验! 今天要说的是: 怎么跑起来! 1》 首先下载好solr,我用的是 solr1.3,下载地址: windows版本 http转载 2010-04-07 17:26:00 · 3226 阅读 · 0 评论 -
MySQL引擎简介
<br />MySQL是我们比较常用的一种数据库软件。它有着诸多的优点,如开源的,免费的等等。其实它还有一个很好的特点,那就是有多种引擎可以供你选择。如果赛车手能根据不同的路况,地形随手更换与之最适宜的引擎,那么他们将创造奇迹。然而目前他们还做不到那样便捷的更换引擎,但是我们却可以! 所谓知己知彼方可百战不殆,要想将它们发挥到极致,首先我们应该来认识一下MySQL提供给我们的这几种引擎。 一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Be转载 2010-06-30 14:40:00 · 699 阅读 · 0 评论 -
javac使用
<br />结构<br />javac [ options ] [ sourcefiles ] [ @files ]<br /><br />参数可按任意次序排列。<br /><br />options <br />命令行选项。 <br />sourcefiles <br />一个或多个要编译的源文件(例如 MyClass.java)。 <br />@files <br />一个或多个对源文件进行列表的文件。 <br />说明<br />javac 工具读取用 Java 编程语言编写的类和接口定义,并将它们编转载 2010-07-06 11:34:00 · 710 阅读 · 0 评论 -
逆向最大匹配分词算法
目前对中文分词有两个方向,其中一个是利用概率的思想对文章分词。也就是如果两个字,一起出现的频率很高的话,我们可以假设这两个字是一个词。这里可以用一个公式衡量:M(A,B)=P(AB)/P(A)P(B),其中A表示一个字,B表示一个字,P(AB)表示AB相邻出现的概率,P(A)表示A在这篇文章中的频度,P(B)表示B在这篇文章中的频度。用概率分词的好处是不需要借助词典的帮助,坏处是算法比较麻原创 2010-05-28 14:16:00 · 12486 阅读 · 0 评论 -
使用xpath操作xml(一.入门知识)
<br />基本的XPath语法类似于在一个文件系统中定位文件 <br />1 如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径。 <br />2 如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) <br />3 星号 * 表示选择所有由星号之前的路径所定位的元素 <br />4 方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素 <br />5 属性通过前缀 @ 来指定转载 2010-06-08 09:50:00 · 893 阅读 · 0 评论 -
solr 配置tika 应用
<br />首先是在solrconfig.xml,添加<br /><!-- Solr Cell: http://wiki.apache.org/solr/ExtractingRequestHandler --> <requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler" startup="lazy"> <lst name="defaults原创 2010-08-03 14:52:00 · 6319 阅读 · 6 评论 -
mhout转化成eclipse项目
<br />1、从http://www.apache.org/dyn/closer.cgi/lucene/mahout/ 下载mahout0.3代码<br />2、下载maven http://maven.apache.org/ 左侧菜单中的get mevan<br />3、解压两个包<br />4、打开命令行窗口<br />5、进行mahout目录:cd %mahout_HOME%/<br />6、让maven生成eclipse项目,在命令行中执行:%maven_HOME%/bin/原创 2010-06-11 11:49:00 · 1355 阅读 · 0 评论 -
K-均值聚类
<br /> K-均值聚类(K-means clustering)是Mac Queen提出的一种非监督实时聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K。该算法原理简单并便于处理大量数据,在基因表达数据分析中得到广泛应用,如Tavazoie等应用K-means聚类酵母细胞周期表达数据。在K-means算法运行前必须先指定聚类数目K和迭代次数或收敛条件,并指定K个初始聚类中心,根据一定的相似性度量准则,将每一条基因分配到最近或“相似”的聚类中心,形成类,然后以每一类的平均矢量作为这一类转载 2010-06-11 11:52:00 · 1696 阅读 · 2 评论 -
solr 基础知识
<br />一、 醒目显示的查询参数1. q Solr中用来搜索的查询。有关该语法的完整描述,请参阅 参考资料 中的 “Lucene QueryParserSyntax”。可以通过追加一个分号和已索引且未进行断词的字段(下面会进行解释)的名称来包含排序信息。默认的排序是 scoredesc,指按记分降序排序。 q=myField:Java AND otherField:developerWorks; dateasc<br />此查询搜索指定的两个字段并根据一个日期字段对结果进行排序。转载 2010-08-10 10:55:00 · 4294 阅读 · 0 评论 -
solr性能调优
Schema Design Considerations indexed fields indexedfields 的数量将会影响以下的一些性能: 索引时的时候的内存使用量 索引段的合并时间 优化时间 索引的大小 我们可以通过 将 omitNorms=“true” 来减少indexed fields数量增加所带来的影响。 stored fields Retrieving the st转载 2010-08-10 11:07:00 · 5377 阅读 · 1 评论 -
中国移动飞信免费发短信API接口(第三方 Fetion API
<br />飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信。<br /><br /> 1、下载中国移动飞信PC客户端软件(http://www.fetion.com.cn/downloads/pc.aspx),并注册开通飞信。注册成为飞信用户,下载飞信PC客户端、使用PC客户端基本功能,不收取费用。<br /> 2、通过PC客户端,邀请并添加免费短信接收方的手机号码(仅限中国移动)到您转载 2010-08-10 11:18:00 · 1718 阅读 · 0 评论 -
最常用的中文停止词(stop word)列表
<br /> public String[] cn_stopword = { "的", "了", "在", "是", "我", "有", "和", "就", "不", "人", "都", "一", "一个", "上", "也", "很", "到", "说", "要", "去", "你", "会", "着", "没有", "看", "好", "自己", "这" }; <br /> <br /> <br />首先,我们看下什么是停止词。停止词,是由英文单词:stop word翻译过来的,转载 2010-08-23 11:59:00 · 24280 阅读 · 1 评论 -
文本特征提取方法研究
<br />文本特征提取方法研究一、课题背景概述<br />文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是从大量的文档中发现隐含知识和模式的一种方法和工具,它从数据挖掘发展而来,但与传统的数据挖掘又有许多不同。文本挖掘的对象是海量、异构、分布的文档(web);文档内容是人类所使用的自然语言,缺乏计算机可理解的语义。传统数据挖掘所处理的数据是结构化的,而文档(web)都是半结构或无结构的。所以,文本挖掘面临的首要问题是转载 2010-08-20 15:41:00 · 4287 阅读 · 0 评论 -
原子操作
"原子操作(atomic operation)是不需要synchronized",这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行倒结束,中间不会有任何 context switch (切换到另一个线程)。 通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是因为它们都比较大,而JVM的设计规范又没有要求读操作和赋值操作必须是原子操作(JV转载 2010-08-26 14:13:00 · 1512 阅读 · 0 评论 -
HashTable, hashmap ,currenthashmap
<br />http://www.ibm.com/developerworks/cn/java/j-jtp07233/<br /> <br /> <br />在Java类库中出现的第一个关联的集合类是 Hashtable ,它是JDK 1.0的一部分。 Hashtable 提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的―― Hashtable 的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。 Hashtable 的后继者 H转载 2010-08-26 17:57:00 · 3428 阅读 · 0 评论 -
lucene Analyzer
1、抽象类Analyzer<br />其主要包含两个接口,用于生成TokenStream:TokenStream tokenStream(String fieldName, Reader reader); TokenStream reusableTokenStream(String fieldName, Reader reader) ; <br />所谓TokenStream,后面我们会讲到,是一个由分词后的Token结果组成的流,能够不断的得到下一个分成的Token。<br />为了提高性能,使得转载 2010-09-16 11:21:00 · 1963 阅读 · 0 评论 -
eclipse升级而不影响自定义插件的方法
eclipse升级而不影响自定义插件的方法<br />从我一开始用eclipse,就是3.1的m5版,到正式版出来前的m6, m7, rc1, rc2, rc3, rc4 经历了无数次的升级。也总结了一些经验,可以轻松升级系统而不用担心插件重装的困扰。<br />首先,非eclipse自带的插件都应该安装在eclipse以外的目录,用link的方法安装。比如我就放在c:/ec_plugins 下面. 有的程序用安装的或者eclipse的update的方式安装的,可以选择目录。有的插件就是一个zip包或者转载 2010-09-20 16:22:00 · 2888 阅读 · 0 评论 -
MongoDB auto shard介绍
[转载]MongoDB auto shard介绍归类于: 默认分类 — zhaigy @ 3:55 pm 编辑此文<br />mongodb 从v1.6开始支持auto-shard,这无疑给管理工作带来了很大方便。<br />Mongodb可以实现负载均衡和故障自动切换<br /> <br />一、Mongodb 自动分片<br />1、shard简介<br />Shard指的是水平方向的多节点数据分散存储。例如:我们可以将不同省份居民信息存储到不同的shard server中。<br />应用程序可转载 2010-09-28 16:26:00 · 1606 阅读 · 0 评论 -
java.lang.OutOfMemoryError: Java heap space 解决方法
<br /> <br />使用Java程序从数据库中查询大量的数据时出现异常:<br />java.lang.OutOfMemoryError: Java heap space<br /><br />在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。<br />JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.<br />JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间转载 2010-09-30 11:18:00 · 3067 阅读 · 0 评论 -
solr索引目录与扩展
<br />1.solr 如何读取索引<br />在solrconfig.xml中可以配置solr的索引目录。<br /><dataDir>${solr.data.dir:./solr/data}</dataDir><br />默认是在目录./solr/data,如果使用分布式的话,这个配置要跟主机一致。<br /> <br /> <br />如果有存在文件index.properties,则读取index=index.20101102052813,获得指定的索引目录index.20101102052813原创 2010-11-29 17:35:00 · 3598 阅读 · 0 评论