Solr 空間查詢

2021-09-02 08:54:47 字數 1241 閱讀 9025

url:

officialdoc:

for example, to sort your results by ascending distance, enter ...&q=*:*&fq=&sfield=store&pt

. =45.15,-93.85&d=50&sort=geodist asc

to return the distance as the document score, enter ...&q=geodist()&sfield=store&pt=45.15,-. 93.85&sort=score+asc

精確按照點和距離搜尋,geofilt函式為圓形計算:

&q=geodist()&fq=&sfield=latilongitude&pt=45.15,93.85&d=5&sort=score+asc

geofilt函式為方形距離計算:

&q=geodist()&fq=&sfield=latilongitude&pt=45.15,93.85&d=5&sort=score+asc

solrj:

solrquery.setquery("geodist()"); // 以名稱為score作為距離返回 使sfield及pt引數生效

// solrquery.set("spatial", true);

solrquery.addfilterquery(""); // 限定距離,使"d"引數生效

solrquery.set("sfield", "latilongitude"); // 設定查詢的經緯度字段

solrquery.set("pt", latilongitude); // 設定查詢 點

solrquery.set("d", distance); // 設定查詢半徑

solrquery.setsort("score", solrquery.order.asc);  // score在geodist()函式下含義為距離,按照最近距離排序

// solrquery.setsort("geodist()", solrquery.order.asc);//被setsort("score", solrquery.order.asc)替代

// 追加其它條件

// solrquery.addfilterquery(querystring); // 可有可沒有...

// 設定返回字段,根據需求定製, score為距離

query.setfields("latilongitude

","score");

參考:  

solr查詢語法

首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢規則 如欲查詢特定字段 非預設字段 請在查詢詞前加上該欄位名稱加 不包含 號 符號,例如 addres...

solr查詢語法

區間範圍查詢 組合 區間條件 if minprice.intvalue 0 maxprice 0 1.首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢...

Solr 查詢語法

摘要 預設的solr查詢語法擴充套件了lucene的語法,其目的也就是檢索索引。solr的查詢用到了引數q,標準的查詢語法就想下面這樣 可以使用debug query來分析查詢過程 debug 一般來說,response會包含匹配程度最好的文件,但是上面例子中,沒有文件滿足這一查詢。在debug資訊...