Indización correcta de los valores de latitud y longitud en Lucene

Estoy trabajando en una funcionalidad de "Búsqueda de la ciudad más cercana basada en los EE. UU. Dentro de un radio determinado" utilizando la API de Lucene. Estoy indexando los valores latentes y largos de la ciudad en Lucene de la siguiente manera:

<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 Lucene solo entiende las cadenas y no los números, estoy rellenando los valores lat y long.

Por ejemplo, si la latitud original y la longitud son 41.811846 y -87.820628 respectivamente, después del relleno, los valores parecen:

paddedLatitude -> "0041.811846" y paddedLongitude -> "- 087.820628"

Estoy haciendo el mismo relleno al crear la consulta de ciudad más cercana (usando la clase ConstantScoreRangeQuery de Lucene).

Dado el hecho de que los valores lat y long podrían ser números decimales / negativos, ¿es este el enfoque correcto para indexarlos de modo que obtendría las ciudades más cercanas correctas en los resultados de búsqueda cuando lucene realizaría una operación de comparación / rango de números en estos valores?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta