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.

questionAnswers(2)

yourAnswerToTheQuestion