Получить начальный и конечный индекс выделенного фрагмента в искомом поле
"Мой поиск возвращает выделенный фрагмент из поля. Я хочу знать, что в этом поле конкретного искомого документа начинается и заканчивается этот фрагмент?"
например.
рассмотрите, я ищу "выделенный фрагмент" в вышеупомянутых строках (рассмотрите вышеупомянутый пункт как единственный документ).
Я устанавливаю свой фрагментатор как:
SimpleFragmenter fragmenter =
new SimpleFragmenter(30);
теперь вывод GetBestFragment выглядит примерно так: "возвращает выделенный фрагмент из"
Можно ли получить начальный и конечный индекс этого фрагмента в тексте выше (скажем, начальный 10 и конечный 45)
2 ответа
Маркер не возвращает эту информацию, когда вы используете методы getBestFragment. За сценой Highlighter использует класс TokenGroup, чтобы получить начальный и конечный индексы каждого фрагмента. Возможно, вы могли бы использовать этот класс.
Я сделал это несколько месяцев назад. Вы должны построить пользовательские Formatter и Encoder. По сути, в маркере форматировщик обрабатывает токены, выбранные для подсветки, а кодировщик обрабатывает остальные токены. В вашем случае вам нужно, чтобы кодировщик выдавал пустое значение каждый раз, когда он вызывался, и форматировщик, чтобы выдавать начальный индекс и конечный индекс. Они действительно хранятся в TokenGroup выделенных частей. Ваш маркер должен быть создан с использованием этих пользовательских форматеров и кодировщиков.