用luence建索引的时候大批量数据如何创建,不是内存溢出?如十几万、上百万条,或更多。

解决方案 »

  1.   

    anybody give me some advices.
      

  2.   

      哎,我最近也在学习lucene,没思路啊。  
      

  3.   

    它的数据存放在一个项目中webroot 的一个目录下,创建的时候以文件形式上传的,索引的时候只是一个文件一个文件的去匹配而已,怎么会内存溢出呢。
      

  4.   

    高人来了,可我的是从数据库里要一下把所有的数据查出来,然后在由for(Goods goods : goodss){
    Document doc = new Document();
    doc.add(new Field("id",goods.getId(),Store.YES,Index.NOT_ANALYZED));
    doc.add(new Field("name",goods.getName(),Store.YES,Index.ANALYZED));
    //int weight=goods.getTotal();
    //doc.setBoost(weight);
    iw.addDocument(doc);
    }
    创建的。
      

  5.   

    这位仁兄,你要是一口气把数据库里面的数据查出来。不内存溢出才怪……
    我给你说个简单的。jdbc然后不是可以rs.next()?用while读取,然后一直添加到document里面。然后基本上是不会出现内存溢出的。当然,你不可能傻傻的就去写JDBC。只是一个思路,spring jdbc也有类似的,hibernate也有类似的。实在不行你就分页查询循环添加也可以……
    对了。记得JVM的内存调高。要不然还真容易内存溢出,服务器挂掉。