返回符杰博客列表

关于lucene集成ansj的路径问题

发布于 2月前

    最近做毕设用到了lucene想做个全文检索,发现lucene自带的中文分词器蠢蠢的,然后想用lucene集成下ansj。

 弄了很久好歹是把ansj弄进去了,然后写了个测试demo毫无问题。

     blob.png

然后我就美滋滋的把这堆东西加到我的web工程里。然而出现了这个。

blob.png

wtf,这是什么鬼,为啥我的词典找不到了,然后我把这个library文件夹在各个可能的路径都复制了一遍,还是这个异常。没办法只能跟踪源码了,

blob.png

到这里依然没看出什么问题,然后下一步发现这个file的绝对路径居然是这个

file:D:\Program Files (x86)\eclipse\eclipse\library\ambiguity.dic

根本不是我在服务器里的路径,问题就出在java的file.getAbsolutePath()这个方法,在这个里面会用到user.dir这个值,java工程一般这个值是工程路径(这也就是为什么我那个demo没有问题,因为不是在服务器里跑),所以这个路径取出来就根本不是我想要的,这就尴尬了,怎么办呢。我传个自己的路径进去?,这样感觉对源码的修改有点多,最后我采取了一个很蠢的方法(毕设时间紧迫啊!)

先从git上把ansj的源码拿下来

blob.png

然后找到出问题的java(File2Stream.java)文件然后把路径改成这样

File file = new File(ServletActionContext.getServletContext().getRealPath("/"+path));

最后在pom里添加相关依赖,打个新的ansj的jar放到我的工程里去(虽然不是很友好,但是快啊,哈哈哈)。


最后的最后再测试一下

blob.png

解决了!


 
相关信息
     标签
       附件
      文件 标题 创建者

      评分 2次评分

      100/100
      100/100
      100/100
      日程