gpt4 book ai didi

lucene - 在Lucene中正确索引纬度和经度值

转载 作者:行者123 更新时间:2023-12-04 18:17:18 25 4
gpt4 key购买 nike

我正在使用Lucene API进行“在给定半径内基于​​美国的最近城市搜索”功能。
我在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和long值。

例如,如果原始纬度和经度分别为41.811846和-87.820628,则填充后的值如下所示:

填充纬度->“0041.811846”和填充经度->“-087.820628”

在构建最近的城市查询时使用相同的填充(使用Lucene的ConstantScoreRangeQuery类)。

考虑到lat和long值可以是十进制/负数的事实,这是对它们进行索引的正确方法,以便当lucene对这些值执行数字范围/比较运算时,我可以在搜索结果中获得正确的最近城市吗?

谢谢。

最佳答案

这是该问题专家Uwe Schindler关于Searching Numerical Fields in Lucene的最新趋势。您可能需要使用较旧(但较慢)的ConstantScoreRangeQuery,因为Lucene.net落后于Lucene,并且链接中描述的NumericRangeQuery类尚未在Java Lucene中发布。

关于lucene - 在Lucene中正确索引纬度和经度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1055175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com