2011-04-23 18 views
1

我知道如何用查詢字符串查詢IndexTank,有或沒有地理定位。但是,如何查詢沒有查詢字符串和只有地理位置?IndexTank:如何查詢沒有查詢字符串,只有地理位置

 index.addFunction(5, "-miles(d[0], d[1], q[0], q[1])"); 
     results = index.search(Query.forString(queryString) 
       .withScoringFunction(5) 
       .withQueryVariable(0, latitude) 
       .withQueryVariable(1, longitude)); 

如果queryString爲null或空字符串不起作用。

謝謝。

回答

3

如果要獲取距某個點某個距離內的所有文檔,則需要發出一個匹配所有文檔的查詢,並在計算距離的得分函數上使用函數過濾器。

例如,如果您的所有文件都帶有值「匹配」場「所有」,你可以搜索:

results = index.search(Query.forString("match:all") 
        .withScoringFunction(5) 
        .withQueryVariable(0, latitude) 
        .withQueryVariable(1, longitude) 
        .withFunctionFilter(5, 0, 10)); 

這將得到10英里內的所有文件(緯度,經度) 。

+0

最後一行應該是:.withFunctionFilter(5,-10,0)); (感謝豪爾赫) – Jason 2011-04-25 06:37:31