0

可能重复:
SolrJ addFile 使文档保持打开状态

大家好,

我对 Apache Solr 很陌生。我的情况如下:

当我的应用程序启动时,它会扫描一个目录并将该目录中的所有 pdf 文件添加到 Solr 索引(使用 SolrJ 的 ContentStreamUpdateRequest):

但是,该应用程序还利用 JNotify 来监视文件夹,以便在文件更改时更新 Solr 的索引。

问题如下:在对目录进行初始扫描后,一切正常,在将相应文件流式传输到 Solr 后,所有文件句柄都被删除。但是如果目录中发生更改(例如重命名文件),SolrJ 似乎并没有放开更改文件的句柄,因此无法再对其进行修改。

我在这里做错了什么?(下面的片段既用于初始扫描,也用于文件更改时)

protected boolean addDocument( File doc ) throws IOException, SolrServerException {

    ContentStreamUpdateRequest csur = new ContentStreamUpdateRequest( "/update/extract" );

    csur.addFile( doc );
    csur.setParam( "literal.id", Utils.getAbsolutePath( doc ) );
    csur.setAction( AbstractUpdateRequest.ACTION.COMMIT, true, true );
    NamedList<Object> result = solr.request( csur );

    return result != null;
}

感谢您提前提出任何建议

4

0 回答 0