使用具有Solr分面搜索的词干字段显示人类可读的最常见索引术语

时间:2012-03-12 14:51:49

标签: solr highlighting faceted-search

我们计划使用Solr向用户显示字段中“n”个最常用的术语,我们希望应用词干,以便将类似的术语分组。

现在,我们需要向用户显示术语,但词干术语并不总是人类可读的。是否有任何方法可以获得原始术语的示例,以便将这些术语显示给用户?

我们能想到的唯一解决方案是查询两个不同的领域,一个是词干,另一个是没有,然后自己进行匹配。但我们认为这将是昂贵的(两个查询)并且可能容易出错(匹配可能会产生错误)。

还有其他方法可以在Solr上实现吗?提前谢谢。

1 个答案:

答案 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.prehl.simple.post进行更改 - 例如,使用&hl.simple.pre=[&hl.simple.post=]将匹配的术语包装在方括号中)至少应该给出“原始”匹配术语的样本。 hl.fragsize=0返回整个字段并突出显示。

希望这会有所帮助。您可以在此处详细了解突出显示参数: http://wiki.apache.org/solr/HighlightingParameters