是否可以有条件地执行 FilterQuery (fq)?
换句话说:只有在某个条件为真时才执行它。
例子:
我的 solr 数据库中有多个城市及其地理位置。我还存储它们是否重要。现在我想查询某个地理位置范围内的所有城市,但也总是返回重要的城市。
或者在类似 SQL 的语法中(我知道这很可怕,甚至不正确的 SQL,但它解释了我的需求):
select *
from cities
having distance(cityname, 30, 30) or important(cityname)
到目前为止,我还没有发现类似的东西。我可以在自定义过滤器查询中做到这一点,但我不想这样做:)。
提前致谢。
编辑:
我想用它来做类似真实世界的事情:
{!geofilt pt=30.2,23.0 sfield=locationCoordinates d=20 cost=20} or nationWide:true
编辑2:
解决方案:
map(query({!geofilt pt=20.3,30.2 sfield=locationCoordinates d=1}, -1), -1, -1, nationWide:true)
在这种情况下应该可以使用负值:http: //www.solrtutorial.com/solr-search-relevancy.html