3

我试图使用 MoreLikeThisComponent 来查找类似的文档。对于其中一个结果,我想知道 MLT 使用的术语,因为“interestingTerms”包含不属于文本分析结果的术语。

以下是在文本分析期间识别出的术语:

  • 1er
  • 延迟
  • 莱施
  • 储备

这是 TermsComponent 返回的内容:

  • 1er
  • 延迟
  • 杰洛施特
  • 洛施
  • p12
  • 储备
  • 施耐德

所以根据文本分析的结果,术语“p12”和“schneider.go”不应该出现在TermsComponent返回的术语列表中。在文本分析过程中,术语“geloscht”被替换为“loesch”,因此也不应该出现在 TermsComponent 返回的术语列表中。

我的文本分析方法:首先,我使用 PatternReplaceCharFilter 删除传递给文本字段的部分文本。原因是所有文档都包含重复的文本部分。这些文本部分没有语义含义,用于表示文本类型、添加文本的用户以及添加文本块的日期。

TermsComponent 返回的两个附加术语来自原始文本,并被 PatternReplaceCharFilter 删除。

我检查了,MLT 识别的“interestingTerms”与TermsComponent 返回的相同。我还检查了存储 TermVector 的字段和没有 TermVector 的文本字段之间是否存在差异。对于这两种变体,TermsComponent 返回相同的术语。

由于 MLT 使用的术语与文本分析期间识别的术语不同,因此 MLT 返回的文档过多。

有人知道为什么 MLT 使用术语,而 TermsComponent 返回不属于文本分析结果的术语吗?

也许有人知道解决方案吗?

为了完整起见:我使用的是 2011 年 12 月 7 日开始的 Solr 4 Trunk 二进制版本。

4

0 回答 0