【问题标题】:Frequency of search term using solr使用 solr 搜索词的频率
【发布时间】:2018-06-27 10:07:11
【问题描述】:

我有一个二级索引,它存储在用于搜索文档的主索引上执行的搜索词。我想在二级索引上运行搜索并按照执行频率的降序列出搜索词,就像我想找到前 10 个搜索最多的词一样。

二级索引以这种格式存储数据

Search Term | Date ...<some more irrelevant fields>
term1 | 01-01-2018
term2 | 01-01-2018
term3 | 02-01-2018
term1 | 02-01-2018
term3 | 03-01-2018

我需要这样的东西,我可以使用 java 来操作。所以任何带有来自 solr 的搜索词和频率的 json 都可以。

Searh Term, Frequency
term1, 2
term2, 1
term3, 2

我查找了一些文章,其中说明了术语向量组件的使用,但这些文章运行搜索的是特定术语在文档中存在的次数。

谁能帮我得到想要的结果。

谢谢

【问题讨论】:

    标签: solr


    【解决方案1】:

    您可以use faceting 计算给定标记在字段中出现的频率。

    &facet=true&facet.field=term&facet.sort=count
    

    您还可以提供许多其他参数,例如按术语或计数排序。

    【讨论】:

    • 这行得通,但我发现了一个小问题。它将搜索词的每个单词都用于刻面,但我想要整个词进行刻面。例如,如果我有一个像“机器语言”这样的搜索词,那么当前的分面将分别采用“机器”和“语言”。我希望将整个术语“机器语言”用于刻面。知道如何实现这一目标。
    • 是的,这将取决于对该领域的分析。使用字符串字段或带有 KeywordTokenizer 和 LowercaseFilter 的字段(在不考虑大小写的情况下计算术语)。如果您想在字段中搜索machine 并同时获得machine language,请设置一个用于搜索的字段和一个用于分面的字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多