0

我需要在我的文本中检索与 SpanNearQuery.getSpans() 返回的 Spans 匹配对应的单词。例如,如果我的文本是 [abcdef] 并且我使用 SpanNearQueries 和查询“b”和“e”(以及足够的 slop),那么我在文本中得到匹配的“bcd e”。现在,我怎样才能最有效地检索出现在匹配中的单词,即单词序列“bcd e”本身?

这是我需要的示例代码:

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

现在我想遍历 allSpan 中的所有匹配项,并为每个匹配项检索查询 9 与该匹​​配项对应的文本之间的确切单词。

一种间接的方法是获取匹配的结束和开始位置,使用文件阅读器读取文本文档,并找到位置“结束”和“开始”之间的文本字符串。但这似乎不是一个非常有效的方法。看来这些信息应该已经存储在 Lucene Index 中了。

有人知道在匹配中检索查询之间的单词的更直接方法吗?

谢谢。

4

1 回答 1

0

What you want to do is highlighting. You can either use the plain highlighter or fast vector highlighter if you store term vectors.

于 2011-02-04T20:50:09.823 回答