【问题标题】:Get starting and end index of a highlighted fragment in a searched field获取搜索字段中突出显示的片段的开始和结束索引
【发布时间】:2011-02-18 23:15:59
【问题描述】:

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

例如。

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

我将我的碎片设置为:

SimpleFragmenter fragmenter = 
            new SimpleFragmenter(30);

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

是否可以在上面的文字中得到这个片段的开始和结束索引(比如说开始是10,结束是45)

【问题讨论】:

    标签: .net lucene lucene.net lucene-highlighter


    【解决方案1】:

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

    【讨论】:

    • 实际上,这个提示很有帮助。很抱歉回复晚了。谢谢
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 2023-01-16
      • 2013-10-19
      相关资源
      最近更新 更多