如何强制 Solr 在与请求中指定的边界没有区别的边界中构建空间热图?



这是solr热图响应的示例:

{
    "responseHeader": {
        "params": {
            "q": "*:*",
            "facet.heatmap": "location_p",
            "facet.heatmap.geom": "["0.6247379779815674 51.52351760864258" TO "5.051644802093506 51.570556640625"]",
            "facet.heatmap.distErrPct": "0.28",
            "facet": "true",
            "wt": "json"
        }
    },
    "response": {
        "numFound": 5876,
        "start": 0,
        "docs": [
            // docs...
        ]
    },
    "facet_counts": {
        "facet_queries": {},
        "facet_fields": {},
        "facet_ranges": {},
        "facet_intervals": {},
        "facet_heatmaps": {
            "location_p": [
                "gridLevel",
                4,
                "columns",
                14,
                "rows",
                1,
                "minX",
                0.3515625,
                "maxX",
                5.2734375,
                "minY",
                51.50390625,
                "maxY",
                51.6796875,
                "counts_ints2D",
                [
                    // heatmap...
                ]
            ]
        }
    }
}

" facet_heatmaps"(minx,maxy ...(中的界限不等于" params"中传递的界限。有没有办法通过指定的边界来强制索尔构建头部图?

no。没有一种方法可以强迫solr facet heatmap方面的响应等于所传递的确切界限。索尔置式热图响应返回基于基础前缀树空间网格实现的刻面数量的响应。

尝试使用更改distErrPct值或将prefixTree切换到grid以获得更精细的谷物响应。

来源solr文档:

您将使用不同的disterrpct值(可能为0.10-0.20(进行各种输入几何形状,直到您想要的默认尺寸为止。计算方式的具体细节并不重要。对于用于点绘制中的高详细网格(每个像素一个小单元格(,将disterr设置为几个像素左右的小数点左右的数量。另外,您可能不想使用基于GeoHash的网格,因为网格级别在正方形和矩形之间的触发器之间的细胞方向。四边形是一致的,并且具有更高的水平,尽管以较大的索引为代价。

https://lucene.apache.org/solr/guide/6_6/spatial-search.html#spatialsearch-heatmapfaceting

最新更新