【问题标题】:Showing human readable most frequent indexed terms using a stemmed field with Solr faceted search使用带有 Solr 分面搜索的词干字段显示人类可读的最常见的索引词
【发布时间】:2012-03-28 23:40:57
【问题描述】:

我们计划使用 Solr 向用户显示某个字段中“n”个最常用的术语,我们希望应用词干提取以便对相似的术语进行分组。

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

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

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

【问题讨论】:

    标签: solr highlighting faceted-search


    【解决方案1】:

    在查询时 索引时都应用了词干提取,所以我认为没有一种简单的方法可以完成您想要做的事情。但是,根据数据库中结果的数量,可以通过结合使用刻面和突出显示来做到这一点。突出显示的词将是整个匹配词,而不是词干词(例如,词干可能是“associ”,但突出显示的词将是“关联”、“关联”、“关联”等)。也许您可以做以下事情:

    ?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

    【讨论】:

    • 再次感谢 David 的现场快速解答。但为什么这个解决方案依赖于我数据库中的结果数量?
    • 只是因为它会获得匹配术语的样本,而不一定是全部。突出显示将仅返回与查询相关的匹配项(包括返回的行数)。因此,如果您的 Solr 核心中有很多记录,那么您可能甚至很可能无法使用此方法检索 所有 匹配项。您可以尝试返回所有行,但对于表面上非常简单的任务而言,这将是大量数据。我希望我能很好地解释自己。
    • 完美。非常感谢您的时间、经验和善意。
    • 感谢您提出的精彩问题!你真的让我想到了这个。
    • @DavidFaber 同样的原因我也在这里!
    猜你喜欢
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2012-08-23
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多