Задержка получения родительского документа с помощью FT Search
Я использую поиск FT в поле $message id для получения родительской базы данных document.my. Мне нужен родительский документ для принятия приглашения на встречу. Как только я смогу получить документ через 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());
1 ответ
Если вы можете получить результат один час / два часа спустя, то индекс FT не обновляется, когда он пытается обработать ваш запрос. Используйте метод updateFTIndex()
NotesDatabase- класс, чтобы убедиться, что он актуален. Конечно, вы можете проверить, если это актуально, используя 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();
}
Дополнительная информация: при создании полнотекстового индекса для базы данных вы определяете, как часто этот индекс обновляется.
Но: даже при выборе "Немедленно" в диалоговом окне это не означает, что индекс всегда будет актуальным. Обновление полного текста является задачей задачи обновления сервера. Если это задание "занято", то запрос ставится в очередь и может быть отложен на некоторое время, пока не появятся ресурсы, доступные для выполнения работы.
Производительность обновлений полнотекстового индекса может быть повышена администратором сервера путем установки переменной notes.ini- "UPDATE_FULLTEXT_THREAD" (см. Эту ссылку о переменной, чтобы проверить подробности).