gpt4 book ai didi

java - SearcherManager maybeRefresh 方法没有发生

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:18 26 4
gpt4 key购买 nike

我正在使用 Lucene 4.0 API 以便在我的应用程序中实现搜索。

导航流程如下:

  1. 用户创建了一篇新文章。然后使用 IndexWriter.addDocument() 将新的 Document 添加到索引中。
  2. 添加后调用 SearcherManager.maybeRefresh() 方法。 SearcherManager 是从 Writer 构建的,以便访问 NRL Search。
  3. 在创建之后,用户决定向他的文章添加一个新标签。这是 Writer.updateDocument() 被调用的时候。考虑到在第 2 步我要求刷新我希望搜索器找到添加的文档。但是,没有找到。

这是常见的行为吗?有没有办法让搜索者找到文档? (提交除外)

最佳答案

我猜你新创建的文档保存在内存中。 Lucene 不会立即进行更改,它会在内存中保留一些文档,因为 I/O 操作需要一些时间和资源。最好只在缓冲区满后才写入。但是,由于您想立即查看和更改文档,请先尝试刷新缓冲区 (IndexWriter.flush())。这应该写入磁盘。仅在之后尝试(可能)刷新。

关于java - SearcherManager maybeRefresh 方法没有发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13277804/

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