首页 > 解决方案 > 使用 tika 索引某些文档后如何从 solr 关键字搜索中获取段落结果?

问题描述

我使用 TIKA 来索引文档。然后我想从段落开头到包含关键词的段落结尾获取整个段落。我尝试使用 HighlightFragsize 但它不起作用。例如:有一个文件如下:

上面有两段。如果我搜索“我的父母”,我希望能找到整段“当我很小的时候,我的父母......很多美丽的风景”。不仅是本段的一部分。我用HighlightFragsize限制了句子,结果不是我想要的。请帮忙。提前致谢

标签: solrsolrjapache-tika

解决方案


你没有提供很多信息,但我假设你正在使用荧光笔,所以这里有几件事你应该检查:

  1. 保存解析数据的字段 - 是否存储?你能看到全部内容吗?
  2. 如果 (1),文本长度是否超过 51200 个字符?默认荧光笔配置有一个设置maxAnalyzedChars51200. 这意味着荧光笔不会从匹配文档中的突出显示字段中处理超过 51200 个字符来查找突出显示。如果是这种情况,请增加此值,直到获得所需的结果。

在非常大的字段上突出显示可能会导致显着的性能损失,在选择配置之前您应该注意这一点。有关更多详细信息,请参阅内容。

更新

我不认为有任何称为 HighlightFragsize 的参数,但是有一个称为hl.fragsize可以在设置为零时执行您想要的操作的参数。

尝试以下查询,看看它是否适合您: q=my+parents&hl=true&hl.fl=my_field&hl.fragsize=0

此外,无论如何,您都应该注意我在上面发布的前 2 点。

更新 2 我不认为有直接的方法来做你正在寻找的东西。您可以将您的字段拆分为一个多值字段,每个段落都存储为一个单独的值。

然后,您可以使用hl.preserveMulti,hl.maxMultiValuedToExaminehl.maxMultiValuedToMatch来实现您所需要的。


推荐阅读