Задержка получения родительского документа с помощью 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" (см. Эту ссылку о переменной, чтобы проверить подробности).

Другие вопросы по тегам