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