Мне нужно было бы получить слова в моем тексте, которые соответствуют совпадению интервалов, возвращаемых SpanNearQuery.getSpans ().Например, если мой текст [abcdef] и я использую SpanNearQueries с запросами 'b' и 'e' (и достаточным отрывом), то я получаю совпадение 'bcde' в моем тексте.Теперь, как мне наиболее эффективно извлечь слова, которые появляются в совпадении, то есть последовательность слов «bcde»?
Вот пример кода того, что мне нужно:
SpanNearQuery allNear = new SpanNearQuery(spansTermQueries, numWordsInBetween, true);
Spans allSpans = allNear.getSpans(reader);
Теперь я хотел бы перебрать все совпадения в allSpans и для каждого совпадения извлечь точные слова между запросами 9 текста, соответствующего этому совпадению.
Один косвенный способ - это получитьконечную и начальную позиции этого совпадения, прочитайте текстовый документ с помощью программы чтения файлов и найдите строку текста между позициями «конец» и «начало».Но это не кажется очень эффективным способом.Кажется, что эта информация уже должна храниться в индексе Lucene.
Кто-нибудь знает о более прямом способе поиска слов между запросами в совпадении?
Спасибо.