Lucene搜索没用过不过java.lang.OutOfMemoryError: Java heap space 错误见过
楼主参考以下:
http://jetway.javaeye.com/blog/106741

解决方案 »

  1.   

    刚才测试好像是在我对Hit 做循环时报错
    List results = new ArrayList();
    int hitLen = hits.length();
    for (int i = 0; i < hitLen; i++) {
         results.add(hits.doc(i));         //就在hits.doc(i)中报错了
    }
    咋回事
      

  2.   

    完整代码如下:
    List results = new ArrayList();
    IndexSearcher searcher = null;
    try {
    searcher = new IndexSearcher("e:/index");
    org.apache.lucene.search.Query query = null;
    query = MultiFieldQueryParser.parse(queries, "content",ISAnalyzer.getAnalyzer(1));
    Hits hits = searcher.search(query, getFilters());
    int hitLen = hits.length();
    for (int i = 0; i < hitLen; i++) {
    results.add(hits.doc(i));
    }
    hits=null;
    }catch (Exception e) {
    System.out.println("search:"+e.getMessage());
    }finally {
    if (searcher != null) {
    // 关闭
    try {
    searcher.close();
    } catch (IOException e) {}
    }
    }
      

  3.   

    你用JProbe工具测测,看看是什么对象占内存,能不能回收