嘿伙计们,
我对Apache Solr很新。我的情况如下:
当我的应用程序启动时,它会扫描目录并将该目录中的所有pdf-Files添加到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;
}
预先提出任何建议