手机端小强原创文章,java小强个人博客站点
当前位置: 首页 >> 开源 >> mmseg4j中的MMSeg4jHandler,动态加载词库

mmseg4j中的MMSeg4jHandler,动态加载词库

211816 开源 | 2016-6-22

mmseg4j 1.8 中有词库变化检测功能,新加载词库后,很有可能此时的分词(搜索时)与索引不对应了。所以要有个机制让重新做索引。

这里使用最简单的方式,就是被动式的加载词库。由外围的程序去决定什么时候更新词库,然后也由外围的程序决定重做索引与否。比如可以写个 shell 脚本放到 crontab 里。

按 solr 的理念——用 url 方式去通知 mmseg4j 加载词库。这个任务交出 MMseg4jHandler 去做。


参数:

dicPath 是指定词库的目录,特性与MMSegTokenizerFactory中的dicPath一样(相对目录是,是相对 solr.home)。

check 是指是否检测词库,其值是true 或 on。

reload 是否尝试加载词库,其值是 true 或 on。此值为 true,会忽视 check 参数。

solrconfig.xml文件增加:

<requestHandler name="/mmseg4j" class="com.chenlb.mmseg4j.solr.MMseg4jHandler" >  
    <lst name="defaults">
        <str name="dicPath">dic</str>
    </lst>
</requestHandler>


然后可以用 http://localhost:8080/solr/mmseg4j/?reload=true,去尝试加载(注意:内存空间要有2倍词库大小的可能空间。一个词库可可能 50M)。

返回结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int></lst><lst name="result"><str name="dicPath">java.net.URI:file:/data/deployment_new/lelifeextra/solr/solrhome/dic/</str><bool name="changed">false</bool></lst>
</response>

注意:dicPath 参数是 MMSegTokenizerFactory 里指定的 dicPath 才有意义


mmseg4j中的MMSeg4jHandler,动态加载词库


附注:

mmseg4j-core-1.10.0.jar 中的 chars.dic, units.dic, words,dic , 这三个都是官方词库,你可以更改以便覆盖官方配置, 也可以不更改。

放入以文件名为words开头, .dic为文件结尾的UTF-8格式的文件, 如果是带BOM的UTF8文件, 第一行为空即可. 每行一个词


推荐您阅读更多有关于“ mmseg4j MMSeg4jHandler 动态词库 ”的文章

上一篇:取消win10任务栏预览框,关掉任务栏缩略图 下一篇:MySQL的create table as 与 like区别

猜你喜欢

发表评论:

评论:

回复 新澳门银座 评论于 2016-07-26 22:06
赞一个 非常不错 很有个性
回复 澳门银座 评论于 2016-07-26 22:01
楼主很厉害,文笔不错,值得学习
回复 澳门银座 评论于 2016-07-26 21:58
排版很好看,简单大方,个人很喜欢
回复 澳门银座 评论于 2016-07-26 21:53
博主的文章写得非常棒 很喜欢
回复 卢松松博客 评论于 2016-07-18 15:54
我来了,既然来了我就得说几句!只说几句而已!如果我不说几句!就对不起人了,既然我要说几句!那么肯定是要说话的~
回复 java小强 评论于 2016-07-20 19:58
@卢松松博客:难道是卢松松本人来了?
回复 任务易 评论于 2016-07-18 15:13
赞一个,程序员就是牛逼
回复 看看回复功能 评论于 2016-07-13 14:12
<script>alert("123")</script><span>好!</span>
回复 java小强 评论于 2016-07-18 11:26
@看看回复功能:不管你信不信,反正我是信了,他没弹123
回复 律所软件 评论于 2016-07-08 17:53
谢谢分享
回复 java小强 评论于 2016-07-18 11:26
@律所软件:多谢光临,虽然我不喜欢你这样的
回复 harries 评论于 2016-07-08 09:07
小强不错,加油
回复 java小强 评论于 2016-07-13 10:12
@harries:竟然是@gmail.com,我看好你
回复 java小强 评论于 2016-06-23 19:52
放入以文件名为words开头, .dic为文件结尾的UTF-8格式的文件, 如果是带BOM的UTF8文件, 第一行为空即可. 每行一个词。
如果你修改文件后发现调用地址怎么也不显示改变,那么也许你创建的文件不是words开头的,别问我是怎么知道的。
回复 java小强 评论于 2016-06-22 21:55
正如上面所说,dic为文件结尾的UTF-8格式的文件,请自行检查服务器文件是否为UTF8格式。
回复 java小强 评论于 2016-06-22 21:54
一般,我们都是在数据库定义一张表来存词库数据,然后导到服务器,然后通知solr更新词库。
脚本参考:
#!/bin/bash
echo '开始加载词库'
rm -rf from-db.dic
echo '删除历史词库'
mysql -h1.1.1.1 -ujavacui -pjavacui -P3306 search -e "select word_str from word_table" > /data/solr/solrhome/dic/from-db.dic
echo '加载词库结束'
直接通过脚连接数据库导出到服务器指定目录。
个人资料
blogger

java小强
没有思考,人生的路会越走越难!

搜索
分类
最新微语
  • 今天同学问我,最近还在写代码吗?我想了想,这个问题怎么回答呢,我好像确实很长时间,虽然写了一些,但是主要内容已经不是写代码了。然后再想想,自己也7年多了,这么多年了,我收获了什么,我的目标到底是什么。眼看就奔三了,人生啊,开启感叹模式。

    2017-03-30 22:52

  • 也许大家都已经注意到了,今年的房价,好多地方都是翻了一番,跟着就是,各地房东开始变相涨租。今年之所以搬走,就是为此,这两天同学也是如此。很多房东只认钱,别谈感情,伤钱。而对于这个城市来说,你怎么定位自己,你真把自己当成她的一份子?你来此为何?将来何去何从?自己掂量清楚。

    2016-12-05 10:03

  • 为什么一直不写了呢?因为当爸爸了,没空了。今年的冬天,有些寒冷,除了这寒冬带来的不适,更有因乐视公司遇到危机,而带来的同事别离。送别同事,看着空旷的工位,心中有些悲凉。临近年关,此时此刻,该怎么做,似乎不再是脑子一热那么简单了。

    2016-11-24 11:28

  • 已经请假,加上国庆,要很长一段时间不在北京了。919加班,搞的现在有点心累,胸闷,身体不适。看来,我要好好休息一下了。这几天有些冷,2016的冬天,一步步来了,各位亲友,记得添衣加粗啊。

    2016-09-23 17:29

  • 现在是真的有秋天的感觉了,晚上也不热了,白天也凉快了。再来点风,那酸爽,就有一种想出去防风的冲动了。不过因为最近广州的事情压着,我也没办法,搞的特别累,以前是天天加班不想有自由,现在是因为有事情了,被限制了自由。加上公司的一些事情,感觉日子特别的无聊。

    2016-08-31 17:39

  • 更多»

最新文章
热门文章
随机文章