`
muxiaolin
  • 浏览: 30342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

高效搜索

实时搜索,最重要的就是效率,实时就意味着你只要有更新就要reopen,大量的reopen的效率是很低的,导致搜索变慢。   索引结构 fs+ramX2   更新最大问题就是delete操作,因为delete操作可能是磁盘的,要reopen这个大家伙需要时间 ...

zoie学习

这个蹩脚的家伙我还没运行起来过,官网的资料少的可怜,代码结构不清晰,包划分让我蛋疼。   读了里面的代码,也是相当蹩脚(个人感觉),但是以上的认识不是藐视这个家伙,是恨铁不成钢啊。   zoie最核心的的部分可能就是  docid-uid的映射,和FilterIndexReader.这个思路很巧妙。但是也不能算是完美。 ZoieMergePolicy也是个不错的东西,已被划归Lucene3.3。如果你对lucene有些研究,建议还是看看这个家伙,对扩展   思路有些帮助。   我结合现在的项目,按照zioe的主要思路做了个引擎,觉得要比zoie要更优化点,加了nosql的库 ...
    When coding LUCENE-2919 (PKIndexSplitter), Mike and me had the idea, how to effectively apply filters on the lowest level (before query execution). This is very useful for e.g. security Filters that simply hide some documents. Currently when you apply the filter after searching, lots of useless ...
     之前花过半天时间写了个MongoDB的CRUD的demo。使用起来还是相当简单的。了解到mongodb是通过“肉饼”的博客。看到之后就对nosql的数据库非常感兴趣。   目前数据量最大的新闻数据库(mysql)2000W。读取非常的慢。慢到有时候没法使用。所以今天测试下新闻数据。 最初在winxp下内存2G,插入30W数据时,后台异常  error 8,mongodb数据1.5G。插入耗时:10s左右   后来发现是32bit内存不够用。今天放到 redhat linux 64bit   ram:4G  ,插入800w数据。mongodb数据大小22g。   预计8g ...
今天和一个创业阶段的老板聊了聊,突然感觉找到了一些共同点。   我们部门,在我刚入职的时候10个人左右,吃饭一张桌子,大家都是刚到公司不到1年左右的新员工。每天都开会,大家干劲十足。每天绞尽脑汁都想怎么把工 ...
所有的基本的配置,在下载下来的hadoop包中都有。hadoop-0.20.203.0\docs   1、下载hadoop,放到linux中     2、   修改以下配置文件。   conf/core-site.xml:   <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> ...
搜索服务运行了3天,突然出现   Exception in thread "Timer-2" java.lang.RuntimeException: (JE 4.1.10) JAVA_ERROR: Java Error occurred, recovery may not be possible.   原因还不知道,只是在一个英文论坛里找个些零碎信息,查看了一下,如果用FS存储,240MB的索引文件,频繁add、del后,现在膨胀到2.4G,膨胀了10倍, ENV_RUN_CLEANER默认是true了,但是好像一点效果都没有   根据上面提到的论坛上的信息,修改 ...
前段时间使用berkeley时,初次尝试小数据量的添加和读取,100W左右的短数据,平均每条value大概20-50个汉字,性能是很不错的。 要比mysql快很多,特别是插入速度。单条读取速度也很满意。 结合lucene使用也是非常方便。   但是同时发现一个问题。同样的数据,当设置不同的log日志切分大小后,存储的文件大小相差很多。 最多大概相差了大概1/5 .虽然能通过设置减少log的大小,但是默认的设置不是令人满意。日志和数据是混在一起的,感觉不是很好控制。   后来使用berkeleydb存储500W的长文本文件,value大概2000-1w汉字,插入速度和读取速度就都一般 ...
之前用的都是Struts2自带的JSON结合Jquery来用,从来没自己做过Object-JSon的转换,刚才大概看了一眼google code上的GSON,看到几个比较有用的类,写出来,免得周一用的时候忘了     经过昨天的使用,发现一些问题,写出来分享下 ...
最近在做新闻频道的搜索,数据量1000W+,预计索引size在20G左右。 百万数据量下用BerkeleyDB速度提升相当明显,但是上到千万时候,性能就没那多突出了。 手机之家的设计方案网上也有,就是用的BerkeleyDB 但是不能单纯使用,本来想做全文检索,但是数据量太大,性能有点问题。尽管可以通过其他手段拆分和优化,但是借着这个机会想用用hadoop,要不然可能没有机会了。 暂时先做标题检索,等学完hadoop后看看分布式后有没有效果,速度是不是有提升。 首先实现的思路是lucene用磁盘索引,只存储ID和title,因为搜索结果页只有title 然后用BerkeleyDB做存 ...
最近发现berkeleydb还是不错的,存储相同的数据量,要比磁盘索引小得多,第一次用这样的非关系型数据库,写了个 基本操作的代码 package com.berkeleydb.java; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.Test; import com.sleepycat.bind.EntryBinding; import com.sleepycat.bin ...
年前最后2天班了,无聊写写博客吧 Lucene提供的日期格式化类  DateTools默认是0时区,这样转换过去,时间应该少8小时。 要是只用时间做排序或其他过滤,这个问题可以忽略,但要是需要展示。那么就需要重写一下 private final static TimeZone GMT = TimeZone.getTimeZone("GMT");   private static final SimpleDateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy", Locale.US);   priv ...
Global site tag (gtag.js) - Google Analytics