使用tika为某些文档建立索引后,如何从solr关键字搜索中获取段落结果?

时间:2018-09-12 03:08:45

标签: solr solrj apache-tika

我使用TIKA为文档建立索引。那么我想让整个段落从段落开始到段落结束,其中都包含关键字。我尝试使用HighlightFragsize,但是它不起作用。例如:有一个如下文件:

  • 在我很小的时候,父母带我去了很多地方,因为他们希望我对世界有更多的了解。多亏了他们,我 见证了世界的多样性和许多美丽的风景。

  • 但是无论我走到哪里,在我心中,最繁华的地方 美丽的风景是我的故乡。

上面有两段。如果我搜索“我的父母”,我希望可以得到整段文字:“当我很小的时候,我的父母……很多美丽的风景”。不只是本段的一部分我用HighlightFragsize限制了句子,但结果不是我想要的。请帮忙。预先感谢

1 个答案:

答案 0 :(得分:0)

您没有提供很多信息,但是我假设您使用的是荧光笔,因此您需要检查以下几点:

  1. 保存已解析数据的字段-是否存储?您可以看到全部内容吗?
  2. 如果为(1),则文本长度是否超过51200个字符?默认的荧光笔配置具有设置为maxAnalyzedChars的设置51200。这意味着荧光笔在匹配文档中要突出显示的部分中,从突出显示的字段中处理的文字不会超过51200个字符。在这种情况下,请增加该值,直到获得所需的结果。

突出显示非常大的字段可能会导致严重的性能下降,在选择配置之前,您应该注意这一点。 有关更多详细信息,请参见this

更新

我认为没有任何参数称为HighlightFragsize,但是有一个名为hl.fragsize的参数可以在设置为零时实现所需的功能。

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

此外,在任何情况下,您都应该注意我上面发布的前2点。

更新2 我认为没有直接的方法可以满足您的需求。您可以将字段拆分为多值字段,每个段落都存储为单独的值。

然后,您可以使用hl.preserveMultihl.maxMultiValuedToExaminehl.maxMultiValuedToMatch来实现所需的功能。