python - 在汇总中对_score最好的 Elasticsearch 结果进行排序

标签 python elasticsearch

我正在尝试进行汇总,然后将得分最高的结果排在最前面。即使聚合成功,但其得分仍未排序。如何使其成为可能?

   "aggs": {
            "group": {
                "terms": {
                    "field": "description.keyword",
                    "order": {
                        "description_score": "desc"
                    }
                },
                "aggs": {
                    "group_docs": {
                        "top_hits": {
                            "size": 1
                        }
                    }
                }
            },

        }

最佳答案

由于@Lupanoide提到的分数不是聚合计算的,因此您无法根据文档分数对存储桶进行排序。相反,可以使用field collapsing

Allows to collapse search results based on field values. The collapsing is done by selecting only the top sorted document per collapse key


{
  "query": {
    "match_all": {}
  },
  "collapse": { --> group by on given field
    "field": "sources.keyword"
  }
}

默认情况下,搜索结果按“得分”排序,因此您无需添加“排序”

关于python - 在汇总中对_score最好的 Elasticsearch 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61364186/

相关文章:

python - 如何捕获高分辨率的网站截图?

python - 在 python 中限制 Fps

c# - 如何使用 ElasticSearch 5.x 的 NEST 流畅映射指定索引/字段分析器?

elasticsearch - Filebeat 6.1.0 和 exclude_lines 选项

elasticsearch - 如何在 Elasticsearch 中获取文档大小(以字节为单位)

c# - 如何使用值名称获取重复值的计数

python - 使用plot在matplotlib中将二维二进制矩阵绘制为一条线?

python - 使用异常取消长函数

python - 使用 Python 查找和替换大型文本文件中特定行的最快方法

elasticsearch - 将 uax_url_email 分析器添加到 Elasticsearch 2.4.5