Получить слова, соответствующие совпадению из SpanNearQuery в Lucene - PullRequest
0 голосов
/ 03 февраля 2011

Мне нужно было бы получить слова в моем тексте, которые соответствуют совпадению интервалов, возвращаемых SpanNearQuery.getSpans ().Например, если мой текст [abcdef] и я использую SpanNearQueries с запросами 'b' и 'e' (и достаточным отрывом), то я получаю совпадение 'bcde' в моем тексте.Теперь, как мне наиболее эффективно извлечь слова, которые появляются в совпадении, то есть последовательность слов «bcde»?

Вот пример кода того, что мне нужно:

SpanNearQuery allNear = new SpanNearQuery(spansTermQueries, numWordsInBetween, true);
Spans allSpans = allNear.getSpans(reader);

Теперь я хотел бы перебрать все совпадения в allSpans и для каждого совпадения извлечь точные слова между запросами 9 текста, соответствующего этому совпадению.

Один косвенный способ - это получитьконечную и начальную позиции этого совпадения, прочитайте текстовый документ с помощью программы чтения файлов и найдите строку текста между позициями «конец» и «начало».Но это не кажется очень эффективным способом.Кажется, что эта информация уже должна храниться в индексе Lucene.

Кто-нибудь знает о более прямом способе поиска слов между запросами в совпадении?

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2011

То, что вы хотите сделать, это выделение .Вы можете использовать простой маркер или быстрый векторный маркер , если храните векторы терминов.

...