solr jcseg 词库自动加载的问题
你好,最近项目的搜索需要分词,试了好几种,碰到jcseg觉得很不错。
我现在的问题是按照配置顺序来的 但是还是没办法自动加载词库 solr启动时都没加载。
我想知道 除了配置autoload为1 和在lex-autoload.todo内加要更新的文件名 之外 还有其他的配置吗?
solr 启动时 调试ADictionary内 autoloadThread为null 而自动加载 更是都没进去这个类
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(29)
在使用Solr 4.8 + Jcseg 1.93的时候,发现自动加载更新后的词库的功能不能使用,不知道是可能因为什么原因导致的呢?
现象:设置了properties中的autoload=1,polltime=30,然后在lexicon目录下的lex-autoload.todo中加上了需要自动更新的文件名lex-test.lex,在启动Solr(通过直接DOS下执行java -jar start.jar方式)后,在lex-test.lex文件中添加新的分词,保存以后,观察lex-autoload.todo文件的变化,但是1分钟以后发现还是没有改变,没有被清空,而新的分词也没有办法使用。
可以能是你的更改引起的,确认下你改的代码,不要出现单例中的lazyInitRice静态条件等。。。
@狮子的魂 已解决EC_MIXED_WORD类型的问题 ,但是 CE_MIXED_WORD不行了。。。。中+英的。。。。
CJK_WORDS 类型 完全没问题
@狮子的魂 发现一个问题 我不知道是不是bug dic单例模式下 solr的多core 会随机1-2个core加载不了JcsegTokenizerFactory
Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] analyzer/tokenizer: Error instantiating class: org.lionsoul.jcseg.analyzer.JcsegTokenizerFactory
回复
好的 谢谢!
回复
中英组合词保证中文部分是一个JCK_WORDS中的词条即可,例如:拳皇OVA,保证CJK_WORDS词库中有“拳皇”即可!
@狮子的魂 jcseg配置文件内 maxlen 最大匹配数 你建议设的是5-7 我设的是12 也可以用 但是不知道 这会影响那方面?因为我词库一半以上是7个数以上的
@狮子的魂 我在EC_MIXED_WORD 内 增添了一些词 为什么只有红箭头的2个词对了,其他的完全没分
引用来自“末之未央”的评论
@狮子的魂 你好 我想再问下 你jcseg的词库用什么工具来维护的?或者说怎么维护起来方便,这段时间下来,最终确定用jcseg分词 因为比较符合我们的项目需求,但是发现词库的维护 是个恶心的地方。。。
回复
除了切分速度,其他没啥影响!(排除大颗粒切分对你项目的影响)
@狮子的魂 你好 我想再问下 你jcseg的词库用什么工具来维护的?或者说怎么维护起来方便,这段时间下来,最终确定用jcseg分词 因为比较符合我们的项目需求,但是发现词库的维护 是个恶心的地方。。。
特别是前期,一大堆词组 要转成jcseg的。。。
请google一下“java单例设计模式”! 然后更改下org.lionsoul.jcseg.Dictionary为单例模式即可!
单例模式 百度google都有的 改起来很简单 实在不会私信我 不过我觉的自己研究最好
@狮子的魂
@末之未央 两位大哥 我刚研究分词不久 现在碰到类似多实例的问题,请问怎么改成单例模式啊
有权限问题吗?
除此外,另外还有一个问题,就是如果solr启动了多个Jcseg词库实例,只有一个词库实例会更新词库,因为一个词库更新完后,他就会清空autoload.todo,你可能需要自己把Dictionary类改成单例模式!
回复
没有权限的问题 我先改成单例试试
回复
请先升级,将analyzer改下就可以适应solr的老版本了,或者把1.9.4的老版本的analyzer那过来覆盖就ok了!
1.
2.
3.
solr 4.72 jcseg 1.94
回复
老版本有bug,http://git.oschina.net/lionsoul/jcseg下载最新版本就ok了!
回复
最新版本貌似不兼容solr4.7.2啊 因为如果我换solr版本的话 改动太大了
回复
现在定时生效了~ 但是 获取的lastModified和文件的lastModified都为0 你知道是什么原因吗 词库的路径我已经在配置文件内指定了。。。
回复
定时有用,但词库未更新
用的最新版本吗?http://git.oschina.net/lionsoul/jcseg
哦 对了 时间我也设了 30S