gpt4 book ai didi

java - 使用 FT 搜索检索父文档时出现延迟

转载 作者:行者123 更新时间:2023-11-30 03:59:33 47 4
gpt4 key购买 nike

我正在 $message id 字段上使用 FT 搜索来检索父文档。我的数据库已建立 FT 索引。我需要父文档来接受 session 邀请。我如何能够在收到 session 邀请 2 小时后检索文档。需要帮助。

String messageiD="<OFF0E85FF0.91FEF356-ON65257C97.00360343-65257C97.00361318@LocalDomain>";
if (messageiD.contains("@")) {
String[] strArr = messageiD.split("@");
messageiD = strArr[0].replace("<", "");
System.out.println("message id is "+messageiD);
//return messageiD;
}

String qry = "Field $MessageID CONTAINS " + messageiD;
DocumentCollection col1 = m_database.FTSearch(qry);
System.out.println("doc col length is " +col1.getCount());
Document docOld = col1.getFirstDocument();
System.out.println(docOld.getNoteID());

最佳答案

如果您能够在一小时/两小时后检索结果,则当 FT-Index 尝试处理您的请求时,它不是最新的。使用 NotesDatabase 类的方法 updateFTIndex() 来确保它是最新的。当然,您可以使用 getLastFTIndexed() 方法检查它是否是最新的...以下是示例 - 来自设计器的代码 - 帮助使用这两种方法:

 try {
Session session = getSession();
AgentContext agentContext =
session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
String title = db.getTitle();
DateTime lastDT = db.getLastFTIndexed();
DateTime nowDT = session.createDateTime("Today");
nowDT.setNow();
int daysSince =
nowDT.timeDifference(lastDT) / 86400;
if (daysSince > 2) {
System.out.println("Database \"" + title +
"\" was last full-text indexed " +
daysSince + " days ago");
System.out.println("Updating");
db.updateFTIndex(true); }
else
System.out.println("Database \"" + title +
"\" was full-text indexed less
than two days ago");

} catch(Exception e) {
e.printStackTrace();
}

其他信息:为您定义的数据库创建全文索引时,该索引的更新频率。

但是:即使在对话框中选择“立即”,这并不意味着索引将始终是最新的。更新全文是服务器的Update-任务的工作。如果此任务“忙”,则请求将排队,并且可能会延迟一段时间,直到有可用资源来完成该作业。

服务器管理员可以通过设置notes.ini变量“UPDATE_FULLTEXT_THREAD”来增强全文索引更新的性能(请参阅this link about the variable以检查详细信息)。

关于java - 使用 FT 搜索检索父文档时出现延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297524/

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