2012-09-28 148 views
2

我們如何獲得Solr 3.6.1返回地理空間搜索結果bbox篩選並按距離排序?無法對Solr進行排序地理空間搜索結果

我想追加一個&sort=geodist() asc爲在Solr docs規定的URL,但我得到的錯誤:

sort param could not be parsed as a query, and is not a field that exists in the index: geodist()

查詢網址與排序& BBOX(不工作)

http://localhost8080/solr/select?wt=json&indent=true 
&q=*:* 
&fl=id,latlng 
&fq={!bbox%20pt=42.352455,-71.048069%20sfield=latlng%20d=5} 
&sort=geodist() asc 

帶排序查詢網址(Works)

http://localhost:8080/solr/select?wt=json&indent=true 
&fl=id,latlng 
&q=*:* 
&sfield=latlng 
&pt=42.352455,-71.048069 
&sort=geodist()%20asc 

查詢網址與BBOX(工程)

http://localhost8080/solr/select?wt=json&indent=true 
&q=*:* 
&fl=id,latlng 
&fq={!bbox%20pt=42.352455,-71.048069%20sfield=latlng%20d=5} 

我怎樣才能兼得bbox過濾和距離(geodist())對結果進行排序?

回答

3

只需將您擁有的'pt'和'sfield'局部參數拉入頂級查詢參數中,就像您使用工作排序查詢一樣。你的fq只是{!bbox d = 5}

+0

不得不拉出'pt'和'sfield'參數,但在花括號裏留下'd'參數的原因是什麼? – Nyxynyx

+0

所謂的「查詢解析器」就像bbox,首先在其本地參數中查找參數,然後回退到頂級URL參數。他們需要處於頂層,geodist()才能看到它們。 –

相關問題