
2009年4月27日
中文分词 mmseg4j 1.7.2 版发布,其实两天前就发布了,只是没有写博客而已。与引版本发布的还有 1.6.2,两者基本一样,只是词库的数据结构不同,1.7的是键树,1.6的是数组与二分查找。 mmseg4j 1.7.2 版的主要更新:
- 修复由 1.7-beta 升级到 1.7 版的 bug:添加 lowerCaseFilter 后的一个 bug: NullPointerException。
- 核发程序与 lucene 和 solr 扩展分开打包, 同时给出低版本的 lucene 扩展(lucene 1.9 到 2.2; lucene 2.3)
如何从源码编译:下载源码:
mmseg4j-1.7.2-src 或
mmseg4j-1.6.2-src。解压到如:e:/mmseg4j-1.7.2-src。然后到这个目录,运行:
或
上面编译是在 solr 1.3 和 lucene 2.4 环境下的。如果您要在 低版本的 lucene 中使用,到 e:/mmseg4j-1.7.2-src/contrib/lucene_1_9 或 e:/mmseg4j-1.7.2-src/contrib/lucene_2_3 运行:
说明:到 contrib 下的子项目中编译的话,先要编译 mmseg4j,contrib/lucene_1_9 可以支持到 2.2。
如果有任何疑问、建议,欢迎到论坛
http://groups.google.com/group/mmseg4j/topics?hl=zh_CN 讨论。或与我联系 chenlb2008#gmail.com。
还要感谢网友“苦涩可乐”提示 NullPointerException 的bug。
官方博客:
mmseg4j,项目:
google code mmseg4j
posted @
2009-04-27 20:00 流浪汗 阅读(1897) |
评论 (0) |
编辑 收藏

2008年9月5日
一直找代码高亮显示,在wp上可以有coolcode但,觉得美中不足的是服务器解析,每请求一次做一次。今天偶然看到
Unmi的博客,他的代码好漂亮,看源码,知道shCore,把他的拿过来试用下。 java 代码
java 代码
groovy 代码
posted @
2008-09-05 00:26 流浪汗 阅读(159) |
评论 (2) |
编辑 收藏

2008年8月11日
上一篇记录了本机模式我虚拟分布模式。
http://www.blogjava.net/chenlb/archive/2008/08/11/221311.html
现我在虚拟机里开三台机子,分别命名为:master(172.16.249.210),slave-1(172.16.249.211),slave-2(172.16.249.212)。
master可以无密码登录到slave机。
每台机子都匹配ip对应名。
127.0.0.1 localhost localhost
172.16.249.210 master
172.16.249.211 slave-1
172.16.249.212 slave-2
修改conf/masters文件和conf/slaves文件。
conf/masters文件:
master
conf/slaves文件:
slave-1
slave-2
格式化后可以启动了:
[chenlb@master hadoop-0.17.1]$ bin/start-all.sh
参考资料:
http://hadoop.apache.org/core/docs/r0.17.1/quickstart.html
http://hadoop.apache.org/core/docs/r0.17.1/cluster_setup.html
posted @
2008-08-11 15:45 流浪汗 阅读(193) |
评论 (0) |
编辑 收藏
Required Software
- JavaTM 1.5.x
- ssh与sshd
如果没有安装请自行安装。我以CentOS 4.6为例。
下载hadoop,http://apache.mirror.phpchina.com/hadoop/core/ 我下载的是0.17.1版本。
解压hadoop-0.17.1.tar.gz,然后conf/hadoop-env.sh 设置JAVA_HOME ,我是可JAVA_HOME 去注释,值自己的路径。如:
export JAVA_HOME=/usr/java/jdk1.6.0_06
如果不设置启动后用不了。
先从简单开始。
1、Local (Standalone) Mode ,叫单机模式。
[chenlb@master hadoop-0.17.1]$ bin/hadoop jar hadoop-0.17.1-examples.jar grep conf output 'dfs[a-z.]+'
[chenlb@master hadoop-0.17.1]$ cat output/*
如果,正常可以看到内容。像这样。
3 dfs.
3 dfs.class
2 dfs.period
2 dfs.replication
... ...
2、Pseudo-Distributed Mode,虚拟分布模式。
vi conf/hadoop-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://master:9001/</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chenlb/hadoop-0.17.1/tmp/</value>
</property>
</configuration>
在/etc/hosts里添加本机ip对应master,例如我的:172.16.249.210 master
保证可以无密码登录。请看那一篇文章:
http://www.blogjava.net/chenlb/archive/2008/07/03/212293.html
用ssh localhost试一下是否免密码登录。
格式化分布式文件系统:
[chenlb@master hadoop-0.17.1]$ bin/hadoop namenode -format
启动Hadoop:
[chenlb@master hadoop-0.17.1]$ bin/start-all.sh
默认可以在
${HADOOP_HOME}/logs里看到日志。
可以用web看浏览NameNode和JobTracker
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
把文件放到分布式文件系统里:
[chenlb@master hadoop-0.17.1]$ bin/hadoop dfs -put conf input
此时已经在分布文件系统里建立了input文件夹。而conf是本地的文件夹。
执行示例:
[chenlb@master hadoop-0.17.1]$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
这里input和output都是分布式文件系统的的文件夹,而且output在分布式文件系统里不存在,否则报错(也可以先删除它bin/badoop dfs -rmr output)。
耐心等待。结束后可以查看。
[chenlb@master hadoop-0.17.1]$ bin/hadoop dfs -get output output
[chenlb@master hadoop-0.17.1]$ cat output/*
也可以直接在分布式文件系统里查:
[chenlb@master hadoop-0.17.1]$ bin/hadoop dfs -cat output/*
成功运行后可以关闭它了:
[chenlb@master hadoop-0.17.1]$ bin/stop-all.sh
我在第2阶段,出了些问题:output已经存在,要先删除它(第二次运行前,可以不用output)。
下一篇讲:Fully-Distributed Mode http://www.blogjava.net/chenlb/archive/2008/08/11/221314.html
posted @
2008-08-11 15:28 流浪汗 阅读(635) |
评论 (2) |
编辑 收藏
在linux下改了ip地址后,不能立即生效。以前是重启机器,我觉得这样很傻,后来知道网卡可以重启。
/etc/init.d/network restart
posted @
2008-08-11 09:34 流浪汗 阅读(1036) |
评论 (1) |
编辑 收藏

2008年8月7日
一直想了解分布搜索与索引。Lucene有MultiSearcher,solr1.2的只能有单个索引,现在1.3可以有Distributed Searching这玩意。可以从多个索引里搜索出并合并结果返回给你。这些索引不是replication的,是分割的。可以先%num方式索引在num台机器上,然后用solr的shards参数。
如:
shards=localhost:8080/use-solr1.3,localhost:9080/use-solr1.3&q=chenlb
测试后可以返回结果,但合并的时候发了点时间,我的机子上40-60ms,单个搜索基本是0ms
测试数据是14W结果,分开索引到两个tomcat里。看了后台,一个搜索有两次请求,其中合并的那机子是三次请求。时间可能花在请求里,还有就是合并可能缓存不到。
官方建议:如果单个solr足够快的话没有必要搞Distributed Searching,如果再高点要求可以index repliction。
当索引很大的时候可能Distributed Searching用的上场, 个人之见。
参考:
http://wiki.apache.org/solr/DistributedSearch
posted @
2008-08-07 18:31 流浪汗 阅读(204) |
评论 (0) |
编辑 收藏