gpt4 book ai didi

solrj - 索引后锁定的文件

转载 作者:行者123 更新时间:2023-12-04 14:59:03 27 4
gpt4 key购买 nike

我的(网络)应用程序中有以下工作流程:

  • 从存档下载 pdf 文件
  • 索引文件
  • 删除文件

  • 我的问题是在索引文件后,它保持锁定状态,并且删除部分引发异常。

    这是我用于索引文件的代码片段:
    try
    {
    ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract");
    req.addFile(file, type);
    req.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

    NamedList<Object> result = server.request(req);

    Assert.assertEquals(0, ((NamedList<?>) result.get("responseHeader")).get("status"));
    }

    我错过了什么吗?

    编辑:

    我也尝试过这种方式,但结果相同......
    ContentStream contentStream = null;

    try
    {
    contentStream = new ContentStreamBase.FileStream(document);

    ContentStreamUpdateRequest req = new ContentStreamUpdateRequest(UPDATE_EXTRACT_REQUEST);
    // req.addFile(document, context.getProperty(FTSConstants.CONTENT_TYPE_APPLICATION_PDF));
    req.addContentStream(contentStream);
    req.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

    NamedList<Object> result = server.request(req);

    if (!((NamedList<?>) result.get("responseHeader")).get("status").equals(0))
    {
    throw new IDSystemException(LOG, "Document could not be indexed. Status returned: " +
    ((NamedList<?>) result.get("responseHeader")).get("status"));
    }
    }
    catch (FileNotFoundException fnfe)
    {
    throw new IDSystemException(LOG, fnfe.getMessage(), fnfe);
    }
    catch (IOException ioe)
    {
    throw new IDSystemException(LOG, ioe.getMessage(), ioe);
    }
    catch (SolrServerException sse)
    {
    throw new IDSystemException(LOG, sse.getMessage(), sse);
    }
    finally
    {
    try
    {
    if(contentStream != null && contentStream.getStream() != null)
    {
    contentStream.getStream().close();
    }
    }
    catch (IOException ioe)
    {
    throw new IDSystemException(LOG, ioe.getMessage(), ioe);
    }
    }

    最佳答案

    这可能是由于文件系统获取了锁。您可以尝试以下操作,而不是 addFile()。

    ContentStreamUpdateRequest req = new ContentStreamUpdateRequest("/update/extract");
    ContentStreamBase.FileStream fileStream = new FileStream(file);
    req.addContentStream(fileStream);

    石狮

    关于solrj - 索引后锁定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22035777/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com