Corrigindo corretamente os valores de latitude e longitude no Lucene
Estou trabalhando em uma funcionalidade "pesquisa de cidade mais próxima com base em um determinado raio" usando a API do Lucene. Estou indexando os valores lat e long da cidade no Lucene da seguinte forma:
<code>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)); </code>
Como o Lucene entende apenas strings e não números, estou preenchendo valores lat e long.
Por exemplo, se lat e long originais forem 41.811846 e -87.820628, respectivamente, após o preenchimento, os valores serão semelhantes:
paddedLatitude -> "0041.811846" e paddedLongitude -> "- 087.820628"
Estou fazendo o mesmo preenchimento ao criar a consulta de cidade mais próxima (usando a classe ConstantScoreRangeQuery do Lucene).
Dado o fato de que os valores lat e long podem ser números decimais / negativos, essa é a abordagem correta para indexá-los para que eu obtenha cidades mais próximas corretas nos resultados da pesquisa quando a lucene executaria uma operação de intervalo / comparação de números nesses valores?
Obrigado.