- 浏览: 156326 次
- 性别:
- 来自: 上海
最新评论
-
1285132895:
能讲的具体一点吗?或者提供一点资料也行啊
Apache Tika 文件内容提取工具 -
shuyanbo:
想法很好。网站停掉了?好像不能访问。
为什么要搭论坛 -
mistbow:
论坛进不去了。。。。
目前我感兴趣的,希望有同好,一起学习 -
柏瑞克李:
我觉得lucene的打分 更多的依赖于 query parse ...
我为什么没有用lucene的score来排序 -
alexzhan:
因为在greader上订阅了你的博客。所以看到了你的文章。
2010-8-3扯淡
文章列表
利用开源做的搜索结果排序目前主要两种计算方式:索引时做好了score计算和查询时动态计算。各有优缺点,适合不同业务。
搜索结果排序需要考虑的点比较多,比如设定不同字段不同比率来计算score,这些字段的来源是否一致,其包含的信息多大,其如何存储。如果需要动态调整,那么其改动成本多大(人员,硬件,时间,金钱等)?如果多台机器,那么是否需要mapreduce,结果是否cache,cache更新,数据一致性。如果有预处理又该如何做。索引和搜索如何协调一致等。
比较讲究的还需要不断修改搜索结果排序算法来达到准确,快速的目的。
一般搜索满足有搜索关键词显示的,用二分分词就够了,排序用lucene自带 ...
一个static的问题
- 博客分类:
- php
static可以放在class,也可以放在function。两者有什么差异。
一般当函数do1,do2都用到 $_arr时,把它作为类变量。
class A{
static $_arr;
function do1(){
}
function do2(){
}
}
Codeigniter 用在函数load_class, 变量static $_classes = array();
于是在code时发现个问题
class FileManage{
function install(){
static ...
一般php的mvc框架都会有route部分,我理解的是将url解析成controller, action, params.
比如 http://localhost/framework/index.php/a/b/?id=1
controller = a
action = b
params 就是id=1
seo效果后,可能是 test.com/a_b_1.html, 也可能是test.com/a/b/1.html.
url解析完成后就到根据特定规则载入controller执行action操作。
和一般url中包含文件夹显示不一样,比如test.com/a/b/1.html,如果没有rew ...
php优缺点,随便搜搜很多。
说说我眼中的php,凭此来记录。
写了不少php代码,但是复用的很少。目前只有一个mysql类。
用过些网上php的类,终究不是自己设计,用过就扔。
也用过些框架,目前只喜欢ci和zend,理由前者简单,后者模块化设计,但是zend还是比较复杂。所以在写个简单点的模块化特征,能少写代码快速使用的,易于理解(我指设计),适合我这样懒人需求的,模块化目的为了代码能复用,易于理解是为了快速将模块搭的适合不同需求。重复轮子有时并不是一件坏事,它能加强你对一些东西认识。
语言速度改变不了多少,所以我不做所谓的语言程度提速优化。大部分重写,并不是为了提升速度,而是为了提 ...
目前全文搜索用到的中文分词,大都是开源和自己开发
相应的算法很多,到底选哪个来写,各有各的看法。
我分享下我做过的供大家参考
没用过词性的中文分词,因为我的业务用不到。
用过的大部分开源的中文分词,主要是基于字典对纯数字,纯英文,纯中文,混合进行比对,效率看字典好坏,其字典设计,内存使用,比对次数,扫描文章次数等。
适合没有明确搜索关键词的全文搜索,其目标是搜索到。
缺点:由于字典和算法,实现后的中文分词形成的索引大小差异比较大,很难衡量其准确性
写过一个分词,基本就是基于产品型号字典的比对。
特点:索引速度快,索引小。因为字典和业务挂钩很容易检查其准确性。
缺点:只能基于业务。
中 ...
感兴趣:
全文搜索, 网站架构, 分布式存储
缺点:
自学的东西不系统,比较杂,不够深入
全文检索:
使用solr搭建过7600万全文搜索
web:
使用php+mysql写web,600万级pv的架构优化
以上数字是我做过的,不是我只能做这么多。
工作使用开源的理由:
一:相对于公司当前平台而言,开源足够强大,从业务来看,只需在开源上稍作调整(当然每家公司可能不一样,我只是说我工作过的公司)
二:做产品要稳,开源相对于自己开发的,稳定多了(从开发到投入运作时间够久,花的人力物力够多,老板不一定有足够耐心)
所以对那些想招那种算法,数据结 ...
想创业的人总会一厢情愿的想到很多美好钱景
而事实往往不如人意
所以实在点
对那些想创业,想忽悠别人一起做得人说
啥时候盈利
只有盈利了才能发工资,才能安心持久的做,空着肚子的坚持是不长久的。
时间太长估计不能吸引人。
目标简单,快速盈利的项目比较适合起步,即便这只是原始资金的积累也可以。
用日期+扯淡来作题目,比较方便,而且不会重复。
头衔:资深PHPER,混得时间久的缘故。
之所以说头衔,因为最近又给找搜索的猎头抓到,很早很早以前我还有兴趣听到底要做什么,自从去年经历了几次搜索面试,我已经没兴趣了,所以我直接回:我不会JAVA,不会数据结构,不懂算法。
那么多面试搜索的,也没见自己能独立写个,但给人感觉是说起数据结构一套又一套,说起算法一摞又一摞,就差宇宙第一牛封号了。
先别说大都靠着开源的做着二次开发,就连搜索产品都没做好。
chinaunix有一句话我很赞赏:考算法,你以为你是数学家!考智力题,你以为你是哲学家!
换个话题。
高并发对我来说一直很神秘,现在也 ...
高并发请求分离静态请求,动态请求
静态请求:文字,图片
动态请求:读取数据,更新数据,写数据,删除数据
处理单个任务很慢,很容易造成后面的链接大量滞留,比如没有用好索引
HTPPD的链接数要和自身任务和所处环境相关,别开过多,要不可能挂
分布式表面看将任务分离到多机,但是复杂度加大,如非必要,慎用
不同环境使用同一开源软件会有不同效果,所以要根据自身来选择,不要人云亦云
应用开发和架构设计两回事
用好cache
当然最关键的是对业务数据特性的分析
这个会不断更新
搭了个论坛 www.laibaojia.cn
每个地方都有自己的规矩,比如这里不能发布招聘,因为这和je业务有冲突,我能理解。
但我经常碰到朋友,猎头要招人,在这个不景气的时候,我希望能给那些找工作的人
更多信息,当然这也让一些在职者有机会找到更适合自己的工作。
技术讨论我更希望是那些有一定工作经验的人来分享,以此达到互补学习的作用。所以不适合那些一遇到问题就要发帖寻找帮助的人,也不适合高高在上的大师。
自娱自乐用的,不追求人数。
继续跟踪lucene,大致看新功能,而不是具体code
继续跟踪solr,大致看新功能和应用,希望结交更多solr使用者。
非专业的搜索系统上亿不大现实,至少目前没机会。千万已经做过了,所以目前搜索我比较感兴趣的是新的好玩的有用的应用。
继续跟踪推荐相关算法,目前还在观望,真正结合业务的才是我感兴趣的,目前感觉过于理论。
跟踪redis,可能会投入实际应用
将学搜索学到的知识,应用到php+mysql的高并发,大数据量的优化,框架和架构设计。
如果时间允许,可能会参加些线下聚会,希望认识更多朋友。
我的联系方式 QQ: 285799457 ,加我说下感兴趣的,便于我分 ...
Yahoo中国面试题PHP算法(2010-03-02 22:51:13)转载
标签:it 分类:Interview
3.7 写一个function实现数组内每个元素之间加法的递代运算?
注:数组元素全部为自然数.
例:
$data=array(1,2,3);
程序要求打印出数组每个数组元素相互之间各种可能性加法(包括元素自已本身加法)
1+1=2,1+2=3,1+3=5,
2+2=4,2+3=5,
3+3=6
打印出以下结果
PHP代码
Array
(
[0] => Array
(
[0] => 2
...
一般网站(假设用 Lucene )要做更新频率比较高的,常见的是大小索引包,大的索引包是旧数据索引,小索引包是新数据索引。更新主要集中在小索引包这里,因为索引小,所以完成索引到能提供搜索的时间是比较短。
但是有时候也不能满足一些高并发的网站高更新需求,高更新要求指的是:用户可能提交了信息后,希望提交后,就能搜索到。这个用lucene的可能就有点吃力。这类一般修改的也很多。
这样可能就需要考虑自建,于是就需要考虑以下几个因素:
1:索引:索引通常是倒排,一个termid最多包含多少个docid呢?以新索引来看应该不会多的很,如果很多,那么可以定期写一个索引,顶多到时候并发到三个地方(旧索引( ...
正则一大堆东西,我不知道。
但是写爬虫要用到正则,尤其我以前写过智能型爬虫。
举例爬取:<a href="a.html" target=_blank>test</a>
php我通常会写成 $p = "/<a href="(.+?)".*?>(.+?)<\/a>/is";
.*? 理解成过滤信息
(.+?) 你要拿得信息
这样的写法 C# 也可以。。如果java可以,请回下。
为什么要用lucene的score来排序?
我是google,baidu么?不是。我做的是通用的网页搜索么?不是。
如果做商品,一般是价格,时间,诚信,推荐,,,,,数据量多了还可以其他排序。
深入了就是数据挖掘一部分了。
当然也有适合用lucene的score来排序的场景,欢迎这些人来补充。