0

重複の可能性:
SolrJaddFileはドキュメントを開いたままにします

やあみんな、

私はApacheSolrを初めて使用します。私の状況は次のとおりです。

アプリケーションが起動すると、ディレクトリがスキャンされ、そのディレクトリ内のすべての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;
}

事前の提案のためのthx

4

0 に答える 0