gpt4 book ai didi

java - Solr 3.4 Geodist 函数,不正确/或不需要的结果

转载 作者:行者123 更新时间:2023-12-01 15:39:01 26 4
gpt4 key购买 nike

我在使用 Solr 3.4 时遇到问题,我正在使用它的空间搜索功能,例如Geodist 和 Geofilt。一切看起来都不错,并且返回的结果据称是按距给定中心点的距离排序的。

但是,由于 Solr 3.4 缺乏在数据中返回函数结果的能力,我必须手动计算它(在本例中是通过 PHP)。

我阅读了文档,geodist 应该是一个实现 haversine 的函数2 个纬度/经度点之间的地理距离的函数。我将该函数移植到 PHP(简单!),并确保它给出正确的结果。

问题是:Solr 用不同的公式计算距离,但我找不到。因此,当我在 PHP 中重新计算距离时,会产生不一致的数据距离(例如 132 英里而不是 83 英里),这不是我可以容忍的差异。

我的解决方案:我说好吧,创建一个函数比较很方便,看看我在数据移植中是否犯了错误,我深入研究了 Solr code并在 org.apache.solr.search.function.distance.HaversineConstFunction 中提取了 hassine 的字面实现,结果几乎相同。并做了这个testing script (full source code and data) .

我的结论是 Solr(或 Lucene)不使用半正矢作为测地实现。但我不知道哪个方程。

更新该错误已解决。我认为我的测试做得太过分了。由于参数命名错误,出现不正确结果,我使用order(来自SQL的)而不是sort(Solr约定)来更改Solr Web 服务结果的顺序。

最佳答案

查看更新,错误已解决。感谢@jarnbjo 和@TreyA 提醒我一个愚蠢的问题。在将来调试库代码之前,我应该检查代码中的愚蠢错误。

关于java - Solr 3.4 Geodist 函数,不正确/或不需要的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384415/

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