3

“我的搜索从一个字段返回一个突出显示的片段。我想知道在特定搜索文档的那个字段中,该片段在哪里开始和结束?”

例如。

考虑我在上面的行中搜索“突出显示的片段”(将上面的段落视为单个文档)。

我将我的碎片设置为:

SimpleFragmenter fragmenter = 
            new SimpleFragmenter(30);

现在GetBestFragment的输出有点像:“从”返回一个突出显示的片段

是否可以在上面的文本中获取此片段的开始和结束索引(比如开始是 10,结束是 45)

4

2 回答 2

1

当您使用 getBestFragment 方法时,荧光笔不会返回该信息。在场景后面,Highlighter 使用TokenGroup类来获取每个片段的开始和结束索引。您可能可以使用该类。

于 2010-05-13T19:37:19.793 回答
0

几个月前我就是这么做的。您必须构建自定义FormatterEncoder。基本上,在荧光笔内部,格式化程序处理选择用于突出显示的标记,而编码器处理其余的标记。在您的情况下,您需要编码器在每次调用它时发出空,而格式化程序发出开始索引和结束索引。它们确实存储在突出显示部分的 TokenGroup 中。您的荧光笔应使用这些自定义格式化程序和编码器构建。

于 2010-05-13T19:41:26.493 回答