lucene的android之坑

一、怎么想的?

lucene确实是一个相当好用的搜索工具,建立倒排索引到直接查询很简便,在Orical官网支持,就直接下载官方包引用即可,就想着可以实现一个在andriod上的搜索,选取建立索引的文件夹,常见索引之后,就可以针对这个文件夹进行搜索

二、还有点顺利~~~

起先我在eclipse上基于java 8实现了针对windows下的某一路径data,对data文件夹下的所有文件进行倒排索引创建,并将索引文件放到index文件夹下,然后利用索引实现搜索,没毛病。
接下来,我就在安卓上写了个界面,可以自己选取文件路径和索引路径,以为万事俱备,只需要将写好的java代码放到android project里面就好,呵呵,天真。

三、坑~全是坑

  1. android本身不支持某写java包,当我在实现搜索功能的类中使用了java 7中新加入的java.nio.file.Path 和 java.nio.file.Paths包,android是不支持这些类的,所以工程中根本无法引入。这直接导致了项目的终结。
  2. android studio升级3.0.1,这是个大坑,新的android studio有某些众所周知的bug,在引入jar包的时候,会出现无法解析的情况,这有可能是引入的jar包包含的类太多超出了android的限制,需要使用分包,还有就是根本不支持这个jar。
  3. 编译生成APK的时候出的问题
  4. API的问题,很多的方法在android上是不支持版本的,就像Path path3 = Paths.get(lucene_path.INDEX_DIR); 这个函数必须在API26以上才支持的。基本是废的。

四、心情很糟糕

搞了两三天发现出发点就是错的,根本不能把java和android混为一谈,sdk和jdk本不能兼容的额特别好,普通jdk使用的jvm是hotspot,而android的jvm是dalvik,你需要找的是支持jdk1.7的dalvik。
调研和规划很重要,再接再厉,虽然这个未必不能实现,但是先换种思路,等以后有更多了解再来。

你可能感兴趣的:(lucene)