【发布时间】:2018-07-14 16:23:38
【问题描述】:
我在使用 SOLR Collapse 时遇到问题,这给了我意想不到的结果。
假设旅行者:
{ traveller_id: 1, geo_hash: 4_u3bu, start_time: 2016-07-14T23:59:00Z },
{ traveller_id: 1, geo_hash: 4_de5f, start_time: 2018-07-14T23:59:00Z },
{ traveller_id: 2, geo_hash: 4_u3bu, start_time: 2018-07-14T23:59:00Z },
基本上我的查询中有 2 个 fq,如下所示...
第一个按具有最近开始时间的旅客 ID 对文档进行分组。
fq={!collapse field=traveller_id min=ms(now,start_time) }
此时,当我只在查询中添加该过滤器时,我得到以下结果:
{ traveller_id: 1, geo_hash: 4_de5f, start_time: 2018-07-14T23:59:00Z},
{ traveller_id: 2, geo_hash: 4_u3bu, start_time: 2018-07-14T23:59:00Z},
看起来不错...但是,等等!
如果我还添加一个额外的 fq 以仅获取具有特定 geohash 的文档,则在下面的后者中:
fq=geohash: (4_u3bu)
那么结果就变得不正确了:
{ traveller_id: 1, geo_hash: 4_u3bu, start_time: 2016-07-14T23:59:00Z },
{ traveller_id: 2, geo_hash: 4_u3bu, start_time: 2018-07-14T23:59:00Z },
看起来 solr 是从使用 geohash: 4_u3bu 拾取旅行者开始的,然后才进行分组。
这是为什么呢?我希望 Solr 首先按最近的旅行者分组,然后应用 geohash 过滤器...
预期结果是:
{ traveller_id: 2, geo_hash: 4_u3bu, start_time: 2018-07-14T23:59:00Z },
有没有办法解决这个问题??
谢谢
【问题讨论】:
标签: solr