es中使用jcseg,词库不能更新

xiaoleizi111 发布于 2017/05/03 13:41
阅读 219
收藏 0

@狮子的魂 你好,想跟你请教个问题:

请问一下,我们现在elastic search分词插件使用的jcseg,es5.2版本,jcseg2.1,但是现在更新词库,lex-autoload.todo一直未清空,而且发现重启es,lex-autoload.todo也不会清空,并且发现重启es时 也没有jcseg进程。如果我要是手动起jcseg服务,todo文件可以清空,但是用es调用分词接口,发现没有起作用。请问es会自动调jcseg吗?

     

加载中
0
狮子的魂
狮子的魂

这个是es的权限问题,es有自己的security.policy现在访问目录外和plugins里面的文件,你需要更改security.policy增加grant权限,才可以使用!具体可以参考下 http://git.oschina.net/lionsoul/elasticsearch-jcseg里面下的security.policy

0
xiaoleizi111
xiaoleizi111

@狮子的魂  你好,确实是这样的,已经解决,非常感谢,但是还有一个问题想问您哈。我把词典文件lexicon目录放到plugins下没问题,但是拿出来在es下新建一个目录就报access denied。我在security.policy文件里的写法是:

grant {
  permission java.io.FilePermission "/mnt/disk10/elasticsearch/elasticsearch-5.3.2/dict/lexicon", "read";
 permission java.io.FilePermission "/mnt/disk10/elasticsearch/elasticsearch-5.3.2/dict/lexicon/-", "read";
};

请问这么写了为什么还会报access denied{java.io.FilePermission "/mnt/disk10/elasticsearch/elasticsearch-5.3.2/dict/lexicon/-", "read"}错误呢

0
xiaoleizi111
xiaoleizi111

@狮子的魂 ,求指导,我们用你的集成版本没有问题,现在换成es5.3,jcseg2.1以后发现又不能更新词库了。是不是高版本又有什么权限限制了,security.policy文件有改名或者放到什么目录下?和你的5.1集成版本有什么配置的不同吗?

0
狮子的魂
狮子的魂

security.policy更改后,丢到根目录,再config/jvm.options里面增加对security.policy的引用,增加如下代码:

```

# Define the security policy

-Djava.security.policy=security.policy

```

具体也可以参考下elasticsearch-jcseg下的config/jvm.options

返回顶部
顶部