对每个铲斗的solr小平面进行百分比计算

时间:2019-09-05 12:43:37

标签: solr lucene

在Solr中,我无法计算每个存储桶的百分比。

当我对数据使用solr进行构面时,我需要根据其父存储桶查看每个存储桶的百分比。

让我们说一下我们的数据如下

{
    "facets": {
        "top_genres": {
            "buckets": [
                {
                    "val": "Fantasy",
                    "count": 1000,
                    "top_authors": {
                        "buckets": [
                            {
                                "val": "Mercedes Lackey",
                                "count": 500
                            },
                            {
                                "val": "Piers Anthony",
                                "count": 500
                            }
                        ]
                    }
                },
                {
                    "val": "Mystery",
                    "count": 1000,
                    "top_authors": {
                        "buckets": [
                            {
                                "val": "James Patterson",
                                "count": 250
                            },
                            {
                                "val": "Patricia Cornwell",
                                "count": 750
                            }
                        ]
                    }
                }
            ]
        }
    }
}

我可以按以下方式获取每个存储分区的百分比吗?

{
    "facets": {
        "top_genres": {
            "buckets": [
                {
                    "val": "Fantasy",
                    "count": 1000,
                    "top_authors": {
                        "buckets": [
                            {
                                "val": "Mercedes Lackey",
                                "count": 500,
                                "p":50 // percentage distribution
                            },
                            {
                                "val": "Piers Anthony",
                                "count": 500
                                "p":50
                            }
                        ]
                    }
                },
                {
                    "val": "Mystery",
                    "count": 1000,
                    "top_authors": {
                        "buckets": [
                            {
                                "val": "James Patterson",
                                "count": 250,
                                "p":25
                            },
                            {
                                "val": "Patricia Cornwell",
                                "count": 750,
                                "p":75
                            }
                        ]
                    }
                }
            ]
        }
    }
}

我正在使用solr 7.2。我看到的平均,求和等功能很少。但是似乎无法获得百分比1。

1 个答案:

答案 0 :(得分:1)

无法使用内置功能来做到这一点。我建议的是在客户端执行-例如接收此JSON响应,解析计数字段并按所需方式计算百分比。

另一种选择是编写自定义的Solr Component,它将包含在solrconfig.xml中的组件链中。这将使您可以更改响应。但是,这将需要在Solr本身的更新/迁移和许多其他困难期间保留此自定义jar。 对于这个简单的任务,我建议使用第一种方法