有没有办法根据facet字段的子字符串获取facet计数,类似于EdgeNGram?
我正在使用solr以高精度存储geohash字符串,并希望以特定的geohash精度计算文档数。构面用于计算特定geohash“单元格”中的文档。
目前,我能看到的唯一方法就是使用地理分层。
例如。当前构面结果集(来自索引数据):
<lst name="facet_counts">
<lst name="facet_fields">
<int name="svztdm7w">11</int>
<int name="sv87rzt8">3</int>
<int name="sv83t6bf">2</int>
<int name="syqxp43m">4</int>
<int name="syr9f0v2">4</int>
<int name="syp8p8hb">3</int>
<int name="tuuttmtt">3</int>
<int name="twj1ynm3">3</int>
<int name="w30n6u71">3</int>
</lst>
</lst>
精确1设置我想要的是什么:
<int name="s">27</int>
<int name="t">6</int>
<int name="w">3</int>
我想要的精确2设置:
<int name="sv">16</int>
<int name="sy">11</int>
<int name="tu">3</int>
<int name="tw">3</int>
<int name="w3">3</int>
干杯。
答案 0 :(得分:0)
我在Solr做过很多关于geohashes的工作;我最近的工作是LSP:http://code.google.com/p/lucene-spatial-playground/,它有各种索引策略,包括geohashes。如果您搜索我的名字和geohash,您会找到各种材料。
听起来你所追求的基本上是一个基于geohash的热图。这是我的TODO列表中的LSP,但与此同时,您可以通过对索引地理数据的索引进行一些操作来获得它。在对您的geohash进行边缘编码后,在geohash前面加上一个前导数字,该数字是geohash的长度。例如,而不仅仅是“16”,索引“216”。使用十六进制表示法,这样您就可以在一个字符中获得16个值,而不是十进制的10.在刻面时,使用facet.prefix = 2.
祝你好运并保持联系。