Получить начальный и конечный индекс выделенного фрагмента в искомом поле

"Мой поиск возвращает выделенный фрагмент из поля. Я хочу знать, что в этом поле конкретного искомого документа начинается и заканчивается этот фрагмент?"

например.

рассмотрите, я ищу "выделенный фрагмент" в вышеупомянутых строках (рассмотрите вышеупомянутый пункт как единственный документ).

Я устанавливаю свой фрагментатор как:

SimpleFragmenter fragmenter = 
            new SimpleFragmenter(30);

теперь вывод GetBestFragment выглядит примерно так: "возвращает выделенный фрагмент из"

Можно ли получить начальный и конечный индекс этого фрагмента в тексте выше (скажем, начальный 10 и конечный 45)

2 ответа

Решение

Маркер не возвращает эту информацию, когда вы используете методы getBestFragment. За сценой Highlighter использует класс TokenGroup, чтобы получить начальный и конечный индексы каждого фрагмента. Возможно, вы могли бы использовать этот класс.

Я сделал это несколько месяцев назад. Вы должны построить пользовательские Formatter и Encoder. По сути, в маркере форматировщик обрабатывает токены, выбранные для подсветки, а кодировщик обрабатывает остальные токены. В вашем случае вам нужно, чтобы кодировщик выдавал пустое значение каждый раз, когда он вызывался, и форматировщик, чтобы выдавать начальный индекс и конечный индекс. Они действительно хранятся в TokenGroup выделенных частей. Ваш маркер должен быть создан с использованием этих пользовательских форматеров и кодировщиков.

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