我试图使用MoreLikeThisComponent来查找类似的文档。有一个结果我想知道MLT使用的术语,因为“interestingTerms”包含的术语不是文本分析结果的一部分。
以下是文本分析中确定的术语:
以下是TermsComponent返回的内容:
因此,根据文本分析的结果,术语“p12”和“schneider.go”不应出现在TermComponent返回的术语列表中。在文本分析期间,术语“geloscht”被“loesch”取代,因此也不应出现在TermsComponent返回的术语列表中。
我的文本分析方法: 首先,我使用PatternReplaceCharFilter删除传递给文本字段的部分文本。原因是,所有文档都包含重复的文本部分。这些文本部分没有语义含义,用于表示文本类型,添加文本的用户以及添加文本块的日期。
TermsComponent返回的两个附加条款来自原始文本,并由PatternReplaceCharFilter删除。
我检查过,MLT识别的“interestingTerms”与TermsComponent返回的相同。我还检查了存储TermVector的字段和没有TermVector的文本字段之间是否存在差异。对于这两种变体,TermsComponent返回相同的术语。
由于MLT使用的术语与文本分析中确定的术语不同,因此MLT会返回太多文档。
有人知道为什么MLT使用术语,而TermComponent会返回不属于文本分析结果的术语吗?
也许有人知道解决方案吗?
为了完整性: 我正在使用2011年12月7日的Solr 4 Trunk二进制版本。