Я использовал библиотеку SAX (то есть подкласс org.xml.sax.helpers.DefaultHandler) для анализа файлов XML, извлек необходимую информацию из каждого документа XML в мой собственный класс Document и затем проиндексировал этот экземпляр документа. (Это было связано с наличием нескольких форматов документов, которые должны были быть проанализированы отдельно, но проиндексированы в одном и том же индексе.) В вашем случае, если содержимое каждого из ваших элементов представляет логический документ, вы можете сохранить дату информация как полезные данные, связанные с определенными токенами. Выполните синтаксический анализ XML до уровня
, перечислите экземпляры абзаца и для каждого экземпляра добавьте новый экземпляр поля с тем же именем, где значение - это текст, а полезная нагрузка - информация о дате, соответственно представленная. (Полезные данные являются двоичными, поэтому, например, вы можете сохранить два длинных значения, соответствующих времени начала и окончания.) Когда вы добавляете в документ несколько экземпляров полей с одинаковыми именами, они индексируются как одно и то же поле, но вы можно назначить разные полезные нагрузки для каждого экземпляра, вы можете настроить положение начала текста и т. д.
Если вам не нужно содержимое каждого элемента как одного документа, вы можете обработать каждый
как отдельный документ, а затем установить для него полезную нагрузку. Кроме того, вы можете сохранить даты в отдельном поле.