正在使用Lucene API在「給定半徑範圍內的美國最近城市搜索」功能上工作。在Lucene的 上午索引城市的緯度和長值如下:正確索引Lucene的緯度和經度值
doc.Add(new Field("latitude", paddedLatitude, Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("longitude", paddedLongitude, Field.Store.YES, Field.Index.UN_TOKENIZED));
由於Lucene的既懂字符串,而不是數字,我填充lat和長值。
例如,如果原始lat和長是41.811846和-87.820628分別填充後,值看起來像:
paddedLatitude - > 「0041.811846」 和paddedLongitude - > 「 - 087.820628」
在構建最近的城市查詢時使用相同的填充(使用Lucene的ConstantScoreRangeQuery類)。
鑑於lat和long值可能是十進制/負數,這是正確的方法來索引它們,這樣我就可以在lucene執行一個範圍/比較運算時在搜索結果中得到正確的最近城市這些值?
謝謝。
謝謝......那麼十進制數呢? – user74042 2009-06-29 17:14:19