【问题标题】:Sort Apache SOLR search result - sentence排序 Apache SOLR 搜索结果 - 句子
【发布时间】:2018-06-18 10:49:52
【问题描述】:

如何按我正在搜索的每个句子的重复单词数对 Apache SOLR 搜索结果进行排序。

例如,我正在搜索单词 THIS 并且在 first JSON 对象中,单词 THIS 出现 1时间。在 second 4x 和 third 2x。

我希望搜索结果按以下顺序排序: 第二个对象第三个​​对象第一个对象

(按句子中THIS的数量)

我是否可以仅使用 Apache SOLR 来实现此结果,或者最好从 Apache SOLR 获取原始结果,然后使用 JavaScript 在客户端对其进行排序?

enter image description here

【问题讨论】:

    标签: javascript apache sorting solr


    【解决方案1】:

    您可以使用 Solr termfreq 关联函数:https://wiki.apache.org/solr/FunctionQuery#termfreq

    termfreq(text,THIS)
    

    您将在 Solr 排序参数中使用此函数的结果:https://lucene.apache.org/solr/guide/6_6/function-queries.html#FunctionQueries-SortByFunction

    http://localhost:8983/solr/collection_name/select?q=*:*&sort=termfreq(text, THIS) desc
    

    【讨论】:

    • 非常适合我!谢谢@christofr,你太棒了!
    • 我有一个问题。例如,当我搜索“Ananas”时,它看起来不错,因为该词存在于 json 数据中 - prntscr.com/jwfew5 但是当我搜索例如“Bubble”时,即使该词不存在,我仍然会得到结果在 JSON - prntscr.com/jwffp4 @christofr
    • 嗨,John,这是因为您已将查询替换为我的示例中的查询 (q=*:*),它返回所有文档。尝试将查询更改为 q=text:*Bubble* 以仅返回文本字段包含术语 Bubble 的文档。
    猜你喜欢
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多