- 博客(26)
- 收藏
- 关注
原创 solr 对网站域名的搜索技巧应用(续)
早几天写的文章那里,对域名的搜索那里 http://kernaling-wong.iteye.com/blog/2212191 ,这几天经过实践,有了新的认识所以想补充一下. 简单说说上个文章表达的,其实就是对域名进行搜索,比如输入it.com ,则不希望出现类似 it.com.cn 这样的域名, 只会搜索出 xxx.it.com 这样的域名. 我上...
2015-05-25 12:25:34 197
原创 solr 对网站域名的搜索技巧应用
菜鸟级文章,高手请绕道. 基本事情背景是这样, 在公司的抓取回来的数据中,都有大量的来源不同网站的域名.这时用户可能只对某几个来源网站感兴趣,或者对某几个来源网站不感兴趣之类,以前的版本中,只对网站域名做了非常简单的分词,基本上可以认为是对 www.it.com.cn 之类的网站,通过 "." 把域名拆开,然后索引.这样用户在搜索某几个域名的网站,直接就可以匹配到了....
2015-05-18 15:47:14 270
原创 Java判断中文字符的性能最优方案
开端与场景 接着上一篇文章的地区分词匹配,最近发现有一些内容中全部为英文或者直接就是一些连接URL,理论上根本不可能产生地区特征的关键字,之前的做法却把这些也进行了分词和匹配了。所以一个比较高效的方式就是把文章内容中非中文的字符过滤掉。 集群的数据存储了约8亿的文章,现在进行一次索引的 rebuild . 这涉及了一个对中文字符的判断及过滤了,想必大家对此...
2014-06-13 11:09:51 219
原创 使用IndexMergeTool后,导致solrcloud的主从同步失败的解决方案
在使用 solrcloud 的时候,很多人都会使用主从同步实现负载均衡与索引的容错性,当索引经过修改,删除或者新增了数据后,索引的段数会不断增多,累积得越多,索引的搜索速度越慢.这时很多人都会提出使用 optimize 优化索引.没错,这一个的确是一个相当重要的手段,而且 solrcloud 也提供了相关的功能即可.本来看似很简单就能解决的问题,深究下去,还是有点意思的.再来一种情...
2014-05-15 13:08:17 283
原创 使用快速分词匹配地区
需求的提出 现在的公司数据集群中,已经存在约8亿的数据,现在有一个业务的要求如下, 1. 比如搜索"广东",则需要把包含广东以下市,区,镇,街道等的所有的关键字都给匹配出来. 2. 同时,搜索"天河",则需要返回一个"广东 广州 天河" 这样子详细的路径出来.意思不能是简单的关键字匹配,因为它有地区的层次归属. 3. 比如文章中含有"朝阳",则全国地区中只含...
2014-04-25 16:49:54 487 1
原创 全国地区层次关系列表(精确到乡镇与街道)
最近公司在开发一个功能,具体需要用到这些精确到乡镇及街道.但网上并没有现成并格式化好的列表.所以通过抓取某网站的地区列表取得这个地区列表,精确到乡镇及街道.同时在抓取过程上,因为对方后台网站做了防抓取限制,结果需要做了很多采集工作才能完成.分享一下,让更多人省去这些麻烦的事情. 一共4万4千多的数据 全国地区列表格式(精确到乡镇与主要街道),格式1 ...
2014-04-25 10:46:31 1121
原创 Solr性能优化之merger的合并方式优化
现状 当 solr 集群采用了 merger 的合并方式后,会把各台 solr 的结果合并到最终结果并输出,如下图所示: 这种是非常常规的做法,我想各路大神也早明白大概的情况了,那我也不多说了 集群的基本情况就是,因为收录了大量的新闻信息,某些新闻可能某一个小时间段内插入了大量数据,而某些时间段却木有,比如:“车祸“这一个关键字,在早上的9点1分1秒添加...
2014-02-26 14:56:55 581
原创 Solr性能优化之QTime的误区
最近公司的其中的一个集群的solr出现了一个比较奇怪的事情,先简单说说以下的情况 机器A是前端的逻辑应用 机器B是具体一个 solr 应用 很通用的方式都是从机器A向机器B的 solr 拿搜索结果并呈现给前端,机器A与机器B处于千兆局域网络。 前端的同事反应有时候, solr 返回的 QTime 很快,但实现搜索出来的结果时间却很久,我大概画了一个图,让大家...
2014-02-17 12:14:20 983
原创 Lucene性能优化之Bitset的误区
在搜索的应用中, bitset 的应用相当广泛,而且是 java util 包下面标准的类,很多人也会首先使用,一般都用于记录对应的 document id 有没有选中,除了这一个解决方案,还有通过 new 数组[] 这样子的方式去记录,其实道理都大同小异,都是通过数组的下标确定对应的 document id 有没有选中。 BitSet性能其实不够好 功能差别上基本相似...
2014-01-22 14:27:21 724
原创 Lucene性能优化之使用Lucene预排序加速搜索速度
简单说搜索个过程,Lucene 在搜索的程序简单分成两部分,搜索与排序。高手请忽略下面我的讲解。 搜索: 通过倒排的索引找到对应的 docId 集,...
2013-12-30 15:36:48 594
自信的一跃
每一个人(至少自己是这样子)都希望过上安稳的日子,于是不断去追求安稳的日子。一旦得到了,自己却发现这也不是自己想要的。 从离开刚毕业的第一家待了3年多的公司后,到现在过去2年多的时间了,2年里面用四个字形容合适不过,浮浮沉沉。象是迷失了自己似的,在第一家公司里面,对技术的狂热追求,每天渴求着上班,渴求着挑战,每天处于亢奋状态。突然有一天,自己要结婚了,摆着前面的问题是存款不多,...
2013-12-27 17:46:54 120
原创 redhat linux磁盘读写状态的解决_觅学网技术博客
开场白: 这段时间网站搜索功能并不稳定,觅学网 [url]http://www.51mixue.com/[/url] 提供的图书馆搜索功能经常处理停顿或者不稳定的状态,但之前一直都能稳定下来。现在却不行了。找问题: 网站的图书搜索返回的速度相当比较慢。但内存也有几百M的空闲,所以,不会是内存问题,CPU占用也非常低。到底是什么问题?解决: 我发觉在更新索引的时候...
2010-09-27 15:55:24 268
原创 关于mysql 函数 SELECT NOW( ) 的小应用
开场白: 如果应用服务需要多台机协作的时候,但只是一些小应用,并不需要劳烦到分布式这样。举一个例子,现在有分布在A机,B机,C机,需要向D机的数据写入数据,但是呢,写入数据的时候,要写入一个记录的更新时间,大家知道A机,B机,C机上的时间并不一定相同的,有可能相差数十秒的时间,所以需要马时间统一起来,如何做? 其实看到我的标题,再加上刚才说的问题,大家都应该知道怎么做了,因为A机......
2010-09-12 15:25:48 2036
原创 把linux的corn应用于Lucene的索引方式
cron 的用处我就不多说了,最近,在做这样的一个事情,索引进行中,要间隔20分钟就会把索引更新一次,即,索引程序会 sleep 20分钟,但要知道 lucene 的 IndexReader 把硬盘的索引缓存到内存,说明了,就算 sleep 过程中什么也没有做,此索引程序还是占用了系统的内存了。而事实上,我们却希望在休眠期间释放其索引占用的内存。当然我们先要分析一下利弊。[b]利:[/b]...
2010-08-29 21:23:09 140
原创 解决Mina的传输中造成的TIME_WAIT过多的问题
开场白: Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了。对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这段时间发现搜索服务器上的TIME_WAIT过多,我们每天大约总处理70W左右的搜索请求,虽然不多,但是造成了TIME_WAIT很多,有好几千个,可以 netstat -antu | gr...
2010-06-25 12:44:50 386
原创 实现类用Lucene PrefixQuery 来实现 Google Suggest 的功能的一种简单方法
开场白: 在我们上google或者baidu的时候,在输入框中输入关键字,然后就有建议的提示来让用户选择。如下图:[img]http://dl.iteye.com/upload/attachment/266068/a5a446ac-6567-3cbc-ad4b-4ec93849161b.png[/img]可以看到,输入了前面的关键字就能全部匹配了关键出来了。但有人会问,直接用...
2010-06-19 19:54:39 116
职友集(www.jobui.com) Lucene Similarity 的排序规则更改了...
[b]开场白:[/b]以前职友集(www.jobui.com)的排序方式很原始,直接按Lucene的默认的Similarity排序,不过这样使得用户感受非常不好,留意过我之前写的博客中已经有提到过通过继承Similarity来实现自定义的排序方法。因为职友集是一个全国最大的中文职位搜索引擎,职位搜索有一个特点就是时间相关性,不但要匹配,而且还需要最新的职位排序最前才会有良好的用户感受,同时现在职友...
2010-06-10 17:19:55 244
sphinx中聚类统计的实现与数据表设计
[b]开场白:[/b]sphinx是一个简单但功能相当强大的基于mysql的一个搜索插件包.1 搜索速度方面稍比lucene快,索引分词速度上也比lucene的分词工具如:IK,paoding等快.(个人平时实践而言)2 内存搜索与CPU占用方面,比lucene要控制得好.3 灵活性明显比lucene要差,因为索引字段一定要基于数据库的字段,不能象lucene一样可以随时建立索引的字段...
2010-04-12 19:42:37 163
原创 Lucene关于实现Similarity自定义排序
[b]开场白:[/b]作为一个人才网站的搜索功能,不但需要考滤搜索性能与效率,与需要注意用户体验,主要体现于用户对搜索结果的满意程度.大家都知道Lucene的排序中,如果单纯使用Lucene的DefaultSimilarity作为一个相似度的排序,意思是说总体上越相关的记录需要排得越前,但事与愿违.这样使用户体现也表现得相当糟糕.关键字“程序员”标题中也不能保证全部都匹配到(搜索结果来自 ww...
2010-02-02 18:51:21 267
原创 PHP的模块化插件
开场白:最近在做一个PHP搜索结果的页面,需要用php的socket去提交参数,然后由java server socket返回一段搜索结果,当然这是一个xml的结果,然后由php去解释并显示出来页面.然而在这个调用php socket的过程中发现每一次调用php的socket时就会报错 Call to undefined function socket_create 意思就是说php对于socke...
2010-01-05 09:51:05 294
tokyocabinet与lucene在搜索上的应用
[b]开场白:[/b]一个多月没有写博客了,今天就写点这一个月工作情况吧.新的公司搜索框架最后却不能成功上线运行这点令我很遗憾,结果还是使用旧有的.[b]背景:[/b] 现在公司一直使用的搜索框架由于内存的使用上及搜索速度和索引的切换方面有比较大的缺憾,首先这里简单说一下以前的搜索框架吧,采取双索引机制,一搜索,一存储。缺点显然而见 1 内存使用方面,明显多加载多一份索引,有...
2009-09-25 13:26:52 105
再说tokyocabinet 及其扩展
开场白:关于tokyocabinet的性能就不说了,但至于安装的话,我之前已经写过关于安装java版的tokyocabinet,但我觉得未够系统,所以决定还简短说说。。。。然后再说一下关于tokyocabinet原生的java API是不支持直接存取java对象的.但可以做些扩展让java tokyocabinet技术存取对象.1 如果直接编译的tokyocabinet java版的时...
2009-09-08 00:32:40 141
我在工作中的Lucene中关于 MUST , SHOULD的一个想法
[b]开场白[/b]:我看过几本书说关于lucene中的BooleanQuery查询条件的参数Boolean.Clause.MUST,Boolean.Clause.MUST_NOT,Boolean.Clause.SHOULD之关的关系,其实就好象是集合中的交集并集等关系.这里不重复书的例子,说一点我平时在工作中的应用吧. 书基本都是说,当MUST与SHOULD关联使用的时候,...
2009-08-24 23:24:28 392
编译tokyocabinet时遇到的问题与解决
[b]开场白[/b]:tokyocabinet是一日本人开发的一个高速key-value持久的缓存数据库,比bekerlyDB速度还要快。 我是打算用它来作为公司搜索缓存的.可以从http://tokyocabinet.sourceforge.net/javapkg/下载这java的版本,前提条件首先要安装jdk了,然后我下载了tokyocabinet-java-1.20.tar.g...
2009-08-10 23:03:04 139
kernalingLog发布
经过在公司内部约1个月的测试,这个工具终于完成了,从中,遇到不少的问题,也改进了不少的问题,比如,改进了平台不兼容的问题,在windows平台下运行无问题,但在linux下却出现了问题等。。。希望大家多多支持,提出意见。这个工具都是向前简单,易用,容易扩展等方向去想。都是平时工作的经验总结。大家多多支持...同时大家可以从http://OpenSVN.csie.org/kernalingLog...
2009-07-31 21:08:24 63
一个简单易用的轻量级的日志工具
在平时的开发中需要某些输出与记录,当然有很多的工具可以使用,如Log4J,本来这个日志系统早一个月前就已经开发完成了,但这段时间工作忙,所以一直只顾用它来测试,没有添加什么功能了.测试过程中产生了几个bug,同时已经修复了.OK,先说说这个日志系统具体功能与作用. 1. 简单,这个日志工具不需要添加任何的额外xml,文本文件等配置,当时也可以添加,在开发中,只需要把这个包kernalin...
2009-06-30 11:34:51 217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人