Je travaille sur une fonctionnalité de "recherche basée sur la ville la plus proche des Etats-Unis dans un rayon donné" à l'aide de Lucene API. Am indexation des valeurs de la ville lat et long dans Lucene comme suit:Indexation correcte des valeurs de latitude et de longitude dans 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));
Depuis Lucene ne comprend que des cordes et non des chiffres, des valeurs Rembourrage suis lat et long.
Par exemple, si lat et long sont respectivement d'origine et 41,811846 -87,820628, après remplissage, les valeurs ressemblent:
paddedLatitude -> "0041,811846" et paddedLongitude -> "- 087,820628"
Je fais le même remplissage en construisant la requête de ville la plus proche (en utilisant la classe ConstantScoreRangeQuery de Lucene). Etant donné que les valeurs lat et long peuvent être des nombres décimaux/négatifs, est-ce la bonne approche pour les indexer afin que j'obtienne les villes les plus proches dans les résultats de la recherche quand Lucene effectuerait une opération de plage/comparaison sur ces valeurs?
Merci.
merci ... et qu'en est-il des nombres décimaux ?? – user74042
Merci encore .... J'ai essayé la solution mentionnée dans le lien de l'article ci-dessus (http://sujitpal.blogspot.com/2008/02/spatial-search-with-lucene.html), mais en exécutant la requête Lucene.net jette une exception: Nom du paramètre: latitude System.ArgumentException: La valeur fournie est hors limites. Nom du paramètre: latitude Voici ma requête: latitude: [131450428 TO 132173263] longitude: [091694457 TO 092664286] – user74042