我们计划使用Solr向用户显示字段中“n”个最常用的术语,我们希望应用词干,以便将类似的术语分组。
现在,我们需要向用户显示术语,但词干术语并不总是人类可读的。是否有任何方法可以获得原始术语的示例,以便将这些术语显示给用户?
我们能想到的唯一解决方案是查询两个不同的领域,一个是词干,另一个是没有,然后自己进行匹配。但我们认为这将是昂贵的(两个查询)并且可能容易出错(匹配可能会产生错误)。
还有其他方法可以在Solr上实现吗?提前谢谢。
答案 0 :(得分:2)
在查询时和索引时应用词干,所以我认为没有一种简单的方法可以完成你想要做的事情。但是,根据数据库中的结果数量,可以通过结合使用分面和突出显示来实现此目的。突出显示的术语将是整个匹配术语而不是词干术语(因此,例如,词干术语可能是“关联”,但突出显示的术语将是“关联”,“关联”,“关联”等)。也许您可以做的是以下内容:
?q=keyword&facet=true&facet.field=myfield&&facet.limit=20hl=true&hl.fl=myfield&hl.fragsize=0&rows=10
获取10行并检查突出显示的结果(默认情况下,使用<em>
</em>
标记突出显示这些结果,但您可以使用hl.simple.pre
和hl.simple.post
进行更改 - 例如,使用&hl.simple.pre=[&hl.simple.post=]
将匹配的术语包装在方括号中)至少应该给出“原始”匹配术语的样本。 hl.fragsize=0
返回整个字段并突出显示。
希望这会有所帮助。您可以在此处详细了解突出显示参数: http://wiki.apache.org/solr/HighlightingParameters