1:我用lucene建了个索引文件,接近5个G了,太大了。请问lucene能否在建立索引文件时做控制,来设置索引文件大小。
2:在lucene检索时,得到结果集比较多的话(几万条左右),有时会出现内存溢出问题,有何办法在得到结果集里做限制返回个数?Hits里能做限制吗?
3:lucene能对多目录下的索引文件进行检索吗?

解决方案 »

  1.   

    1.你自已不会判断啊
    2.看help有这么样的东东
    3.其实这个我不知道,不过即使是没有你自已也可以写
      

  2.   

    3:lucene能对多目录下的索引文件进行检索吗?可以
    ,所以建议你使用多各索引文件来联合搜索
      

  3.   

    to;istcn(二阳)
    请问怎么样来进行联合搜索?
    难道把各个索引库分别搜索,然后把结果全部显示出来?
      

  4.   

    如eww(fs)所说的,自己判断文件大小,我把索引文件指定到2个G,如果超过2个G,将再创建一个文件夹,建立新的索引库,所以也才会用到多目录索引
      

  5.   

    关键字:lucene.net 搜索排序 内存猛涨 内存溢出 IndexSearcher TopDocs weight/** *//** Creates a searcher searching the index in the named directory. */
    public IndexSearcher(String path) throws IOException ...{
        this(IndexReader.open(path), true);
      }  /** *//** Creates a searcher searching the index in the provided directory. */
      public IndexSearcher(Directory directory) throws IOException ...{
        this(IndexReader.open(directory), true);
      }  /** *//** Creates a searcher searching the provided index. */
      public IndexSearcher(IndexReader r) ...{
        this(r, false);
      }
      
      private IndexSearcher(IndexReader r, boolean closeReader) ...{
        reader = r;
        this.closeReader = closeReader;
      }在lucene应用中也许很多人都遇到这种情况。当索引太大(大于10G),搜索时用前两种构造方法声明IndexSearcher对象,这样每构造一个IndexSearcher对象,都要声明一个索引对象(实际上是一个索引的多次连接),而每个索引对象都要占用一定量的系统资源(主要是内存)。当大量用户访问系统时,就会看到系统内存直线增长,致使产生“java heap space”内存耗尽或内存溢出(.net)。这个问题可以通过以下方法解决:终极解决方法:
    联系方式: [email protected] , [email protected]
      

  6.   

    1. 索引文件大小是自己控制的,如果大了就分成多个索引文件就行了
    2. 一般取返回结果前一百条.
    3. lucene能对多目录下的索引文件进行检索,建议用多线程检索,速度和索引一个文件差不当多。