2
是否可以有条件地执行FilterQuery(fq)?Solr中的条件筛选查询
换句话说:只有在特定条件为真时才执行它。
例子:
我有多个城市和他们在我的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
EDIT2:
解决方案:
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
请问您能详细说明一下给出的例子吗? – 2013-03-12 16:09:45
geohash并不是我所需要的。 – 2013-03-12 16:21:25
你能用数学公式表达你的距离计算吗?我不太擅长这个计算。 – 2013-03-12 16:25:36